From: Mathieu Baudier Date: Wed, 10 Aug 2016 17:52:17 +0000 (+0000) Subject: Re-add org.argeo.cms.util.useradmin X-Git-Tag: argeo-commons-2.1.45~28 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=89ad04528a66488eb3ad6f51c198d5df3c81b04c;p=lgpl%2Fargeo-commons.git Re-add org.argeo.cms.util.useradmin git-svn-id: https://svn.argeo.org/commons/trunk@9085 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.cms/src/org/argeo/cms/util/useradmin/UserAdminUtils.java b/org.argeo.cms/src/org/argeo/cms/util/useradmin/UserAdminUtils.java new file mode 100644 index 000000000..5c197c1ae --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/util/useradmin/UserAdminUtils.java @@ -0,0 +1,242 @@ +package org.argeo.cms.util.useradmin; + +import java.security.AccessController; +import java.util.List; +import java.util.Set; + +import javax.naming.InvalidNameException; +import javax.naming.ldap.LdapName; +import javax.naming.ldap.Rdn; +import javax.security.auth.Subject; +import javax.security.auth.x500.X500Principal; + +import org.argeo.ArgeoException; +import org.argeo.cms.CmsView; +import org.argeo.cms.auth.AuthConstants; +import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.util.CmsUtils; +import org.argeo.eclipse.ui.EclipseUiUtils; +import org.argeo.jcr.JcrUtils; +import org.argeo.osgi.useradmin.LdifName; +import org.osgi.service.useradmin.Group; +import org.osgi.service.useradmin.Role; +import org.osgi.service.useradmin.User; +import org.osgi.service.useradmin.UserAdmin; + +/** Centralise common patterns to manage roles with a user admin */ +public class UserAdminUtils { + + /** Retrieves a {@link Role} given a LDAP name */ + public final static Role getRole(UserAdmin userAdmin, LdapName dn) { + Role role = userAdmin.getRole(dn.toString()); + return role; + } + + /** Retrieves the unique local username given a {@link User}. */ + public final static String getUsername(User user) { + String username = null; + if (user instanceof Group) + username = getProperty(user, LdifName.cn.name()); + else + username = getProperty(user, LdifName.uid.name()); + return username; + } + + /** + * Easily retrieves one of the {@link Role}'s property or an empty String if + * the requested property is not defined + */ + public final static String getProperty(Role role, String key) { + Object obj = role.getProperties().get(key); + if (obj != null) + return (String) obj; + else + return ""; + } + + // CENTRALIZE SOME METHODS UNTIL API IS STABLE + /** Simply checks if current user is registered */ + public static boolean isRegistered() { + return !CurrentUser.isAnonymous(); + } + + /** Simply checks if current user as a home */ + public static boolean hasHome() { + return isRegistered(); + } + + // SELF HELPERS + /** Simply retrieves the current logged-in user display name. */ + public static User getCurrentUser(UserAdmin userAdmin) { + return (User) getRole(userAdmin, getCurrentUserLdapName()); + } + + /** Simply retrieves the current logged-in user display name. */ + public static String getCurrentUserDisplayName(UserAdmin userAdmin) { + String username = getCurrentUsername(); + return getUserDisplayName(userAdmin, username); + } + + /** Simply retrieves the current logged-in user display name. */ + public static String getCurrentUserMail(UserAdmin userAdmin) { + String username = getCurrentUsername(); + return getUserMail(userAdmin, username); + } + + /** Returns the local name of the current connected user */ + public final static String getUsername(UserAdmin userAdmin) { + LdapName dn = getCurrentUserLdapName(); + return getUsername((User) getRole(userAdmin, dn)); + } + + /** Returns true if the current user is in the specified role */ + public static boolean isUserInRole(String role) { + Set roles = CurrentUser.roles(); + return roles.contains(role); + } + + /** Simply checks if current user is the same as the passed one */ + public static boolean isCurrentUser(User user) { + String userName = getProperty(user, LdifName.dn.name()); + try { + LdapName selfUserName = getCurrentUserLdapName(); + LdapName userLdapName = new LdapName(userName); + if (userLdapName.equals(selfUserName)) + return true; + else + return false; + } catch (InvalidNameException e) { + throw new ArgeoException("User " + user + " has an unvalid dn: " + + userName, e); + } + } + + public final static LdapName getCurrentUserLdapName() { + String name = getCurrentUsername(); + return getLdapName(name); + } + + /** Simply retrieves username for current user, generally a LDAP dn */ + public static String getCurrentUsername() { + Subject subject = currentSubject(); + String name = subject.getPrincipals(X500Principal.class).iterator() + .next().toString(); + return name; + } + + /** + * Fork of the {@link CurrentUser#currentSubject} method that is private. + * TODO Enhance and factorize + */ + private static Subject currentSubject() { + CmsView cmsView = CmsUtils.getCmsView(); + if (cmsView != null) + return cmsView.getSubject(); + Subject subject = Subject.getSubject(AccessController.getContext()); + if (subject != null) + return subject; + throw new RuntimeException("Cannot find related subject"); + } + + // HOME MANAGEMENT + /** + * Simply retrieves the *relative* path to the current user home node from + * the base home node + */ + public static String getCurrentUserHomeRelPath() { + return getHomeRelPath(getCurrentUsername()); + } + + /** + * Simply retrieves the *relative* path to the home node of a user given its + * userName + */ + public static String getHomeRelPath(String userName) { + String id = getUserUid(userName); + String currHomePath = JcrUtils.firstCharsToPath(id, 2) + "/" + id; + return currHomePath; + } + + // HELPERS TO RETRIEVE REMARKABLE PROPERTIES + /** Simply retrieves the user uid from his dn with no useradmin */ + public static String getUserUid(String dn) { + LdapName ldapName = getLdapName(dn); + Rdn last = ldapName.getRdn(ldapName.size() - 1); + if (last.getType().toLowerCase().equals(LdifName.uid.name()) + || last.getType().toLowerCase().equals(LdifName.cn.name())) + return (String) last.getValue(); + else + throw new ArgeoException("Cannot retrieve user uid, " + + "non valid dn: " + dn); + } + + /** + * Returns the local username if no user with this dn is found or if the + * found user has no defined display name + */ + public static String getUserDisplayName(UserAdmin userAdmin, String dn) { + Role user = getRole(userAdmin, getLdapName(dn)); + if (user == null) + return getUserUid(dn); + String displayName = getProperty(user, LdifName.displayName.name()); + if (EclipseUiUtils.isEmpty(displayName)) + displayName = getProperty(user, LdifName.cn.name()); + if (EclipseUiUtils.isEmpty(displayName)) + return getUserUid(dn); + else + return displayName; + } + + /** + * Returns null if no user with this dn is found or if the found user has no + * defined mail + */ + public static String getUserMail(UserAdmin userAdmin, String dn) { + Role user = getRole(userAdmin, getLdapName(dn)); + if (user == null) + return null; + else + return getProperty(user, LdifName.mail.name()); + } + + // VARIOUS UI HELPERS + public final static String buildDefaultCn(String firstName, String lastName) { + return (firstName.trim() + " " + lastName.trim() + " ").trim(); + } + + /** Simply retrieves a display name of the relevant domain */ + public final static String getDomainName(User user) { + String dn = user.getName(); + if (dn.endsWith(AuthConstants.ROLES_BASEDN)) + return "System roles"; + try { + LdapName name = new LdapName(dn); + List rdns = name.getRdns(); + String dname = null; + int i = 0; + loop: while (i < rdns.size()) { + Rdn currrRdn = rdns.get(i); + if (!LdifName.dc.name().equals(currrRdn.getType())) + break loop; + else { + String currVal = (String) currrRdn.getValue(); + dname = dname == null ? currVal : currVal + "." + dname; + } + i++; + } + return dname; + } catch (InvalidNameException e) { + throw new ArgeoException("Unable to get domain name for " + dn, e); + } + } + + // Local Helpers + /** Simply retrieves a LDAP name from a dn with no exception */ + public static LdapName getLdapName(String dn) { + try { + return new LdapName(dn); + } catch (InvalidNameException e) { + throw new ArgeoException("Cannot parse LDAP name " + dn, e); + } + } +} \ No newline at end of file diff --git a/org.argeo.cms/src/org/argeo/cms/util/useradmin/UserAdminWrapper.java b/org.argeo.cms/src/org/argeo/cms/util/useradmin/UserAdminWrapper.java new file mode 100644 index 000000000..911b92ea8 --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/util/useradmin/UserAdminWrapper.java @@ -0,0 +1,105 @@ +package org.argeo.cms.util.useradmin; + +import java.util.ArrayList; +import java.util.Dictionary; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.transaction.Status; +import javax.transaction.UserTransaction; + +import org.argeo.ArgeoException; +import org.argeo.cms.auth.AuthConstants; +import org.argeo.osgi.useradmin.UserAdminConf; +import org.osgi.framework.ServiceReference; +import org.osgi.service.useradmin.UserAdmin; +import org.osgi.service.useradmin.UserAdminEvent; +import org.osgi.service.useradmin.UserAdminListener; + +/** + * Base useradmin wrapper. Implementing application might extends to add + * business specific behaviour + */ +public abstract class UserAdminWrapper { + // private Log log = LogFactory.getLog(UserAdminWrapper.class); + + private UserAdmin userAdmin; + private ServiceReference userAdminServiceReference; + private UserTransaction userTransaction; + + /* USER ADMIN LISTENER MANAGEMENT */ + List listeners = new ArrayList(); + + // TODO implement safer mechanism + public void addListener(UserAdminListener userAdminListener) { + if (!listeners.contains(userAdminListener)) + listeners.add(userAdminListener); + } + + /** + * Starts a transaction if none already exists and notify the userAdmin + * listeners.Must be called from the UI Thread. + */ + public UserTransaction beginTransactionIfNeeded() { + try { + if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION) { + userTransaction.begin(); + } + return userTransaction; + } catch (Exception e) { + throw new ArgeoException("Unable to begin transaction", e); + } + } + + // Expose this? + public void removeListener(UserAdminListener userAdminListener) { + if (listeners.contains(userAdminListener)) + listeners.remove(userAdminListener); + } + + public void notifyListeners(UserAdminEvent event) { + for (UserAdminListener listener : listeners) + listener.roleChanged(event); + } + + public Map getKnownBaseDns(boolean onlyWritable) { + Map dns = new HashMap(); + for (String uri : userAdminServiceReference.getPropertyKeys()) { + if (!uri.startsWith("/")) + continue; + Dictionary props = UserAdminConf.uriAsProperties(uri); + String readOnly = UserAdminConf.readOnly.getValue(props); + String baseDn = UserAdminConf.baseDn.getValue(props); + + if (onlyWritable && "true".equals(readOnly)) + continue; + if (baseDn.equalsIgnoreCase(AuthConstants.ROLES_BASEDN)) + continue; + dns.put(baseDn, uri); + } + return dns; + } + + public UserAdmin getUserAdmin() { + return userAdmin; + } + + public UserTransaction getUserTransaction() { + return userTransaction; + } + + /* DEPENDENCY INJECTION */ + public void setUserAdmin(UserAdmin userAdmin) { + this.userAdmin = userAdmin; + } + + public void setUserTransaction(UserTransaction userTransaction) { + this.userTransaction = userTransaction; + } + + public void setUserAdminServiceReference( + ServiceReference userAdminServiceReference) { + this.userAdminServiceReference = userAdminServiceReference; + } +} \ No newline at end of file diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/AbstractUserAdminWrapper.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/AbstractUserAdminWrapper.java deleted file mode 100644 index e222656df..000000000 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/AbstractUserAdminWrapper.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.argeo.security.ui.admin.internal; - -import java.util.ArrayList; -import java.util.Dictionary; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.transaction.Status; -import javax.transaction.UserTransaction; - -import org.argeo.ArgeoException; -import org.argeo.cms.auth.AuthConstants; -import org.argeo.osgi.useradmin.UserAdminConf; -import org.osgi.framework.ServiceReference; -import org.osgi.service.useradmin.UserAdmin; -import org.osgi.service.useradmin.UserAdminEvent; -import org.osgi.service.useradmin.UserAdminListener; - -/** - * Base useradmin wrapper. Implementing application might extends to add - * business specific behaviour - */ -public abstract class AbstractUserAdminWrapper { - // private Log log = LogFactory.getLog(UserAdminWrapper.class); - - private UserAdmin userAdmin; - private ServiceReference userAdminServiceReference; - private UserTransaction userTransaction; - - /* USER ADMIN LISTENER MANAGEMENT */ - List listeners = new ArrayList(); - - // TODO implement safer mechanism - public void addListener(UserAdminListener userAdminListener) { - if (!listeners.contains(userAdminListener)) - listeners.add(userAdminListener); - } - - /** - * Starts a transaction if none already exists and notify the userAdmin - * listeners.Must be called from the UI Thread. - */ - public UserTransaction beginTransactionIfNeeded() { - try { - if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION) { - userTransaction.begin(); - } - return userTransaction; - } catch (Exception e) { - throw new ArgeoException("Unable to begin transaction", e); - } - } - - // Expose this? - public void removeListener(UserAdminListener userAdminListener) { - if (listeners.contains(userAdminListener)) - listeners.remove(userAdminListener); - } - - public void notifyListeners(UserAdminEvent event) { - for (UserAdminListener listener : listeners) - listener.roleChanged(event); - } - - public Map getKnownBaseDns(boolean onlyWritable) { - Map dns = new HashMap(); - for (String uri : userAdminServiceReference.getPropertyKeys()) { - if (!uri.startsWith("/")) - continue; - Dictionary props = UserAdminConf.uriAsProperties(uri); - String readOnly = UserAdminConf.readOnly.getValue(props); - String baseDn = UserAdminConf.baseDn.getValue(props); - - if (onlyWritable && "true".equals(readOnly)) - continue; - if (baseDn.equalsIgnoreCase(AuthConstants.ROLES_BASEDN)) - continue; - dns.put(baseDn, uri); - } - return dns; - } - - public UserAdmin getUserAdmin() { - return userAdmin; - } - - public UserTransaction getUserTransaction() { - return userTransaction; - } - - /* DEPENDENCY INJECTION */ - public void setUserAdmin(UserAdmin userAdmin) { - this.userAdmin = userAdmin; - } - - public void setUserTransaction(UserTransaction userTransaction) { - this.userTransaction = userTransaction; - } - - public void setUserAdminServiceReference( - ServiceReference userAdminServiceReference) { - this.userAdminServiceReference = userAdminServiceReference; - } -} \ No newline at end of file diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UserAdminUtils.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UserAdminUtils.java deleted file mode 100644 index 0fc4fc11f..000000000 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UserAdminUtils.java +++ /dev/null @@ -1,242 +0,0 @@ -package org.argeo.security.ui.admin.internal; - -import java.security.AccessController; -import java.util.List; -import java.util.Set; - -import javax.naming.InvalidNameException; -import javax.naming.ldap.LdapName; -import javax.naming.ldap.Rdn; -import javax.security.auth.Subject; -import javax.security.auth.x500.X500Principal; - -import org.argeo.ArgeoException; -import org.argeo.cms.CmsView; -import org.argeo.cms.auth.AuthConstants; -import org.argeo.cms.auth.CurrentUser; -import org.argeo.cms.util.CmsUtils; -import org.argeo.eclipse.ui.EclipseUiUtils; -import org.argeo.jcr.JcrUtils; -import org.argeo.osgi.useradmin.LdifName; -import org.osgi.service.useradmin.Group; -import org.osgi.service.useradmin.Role; -import org.osgi.service.useradmin.User; -import org.osgi.service.useradmin.UserAdmin; - -/** Centralise common patterns to manage roles with a user admin */ -public class UserAdminUtils { - - /** Retrieves a {@link Role} given a LDAP name */ - public final static Role getRole(UserAdmin userAdmin, LdapName dn) { - Role role = userAdmin.getRole(dn.toString()); - return role; - } - - /** Retrieves the unique local username given a {@link User}. */ - public final static String getUsername(User user) { - String username = null; - if (user instanceof Group) - username = getProperty(user, LdifName.cn.name()); - else - username = getProperty(user, LdifName.uid.name()); - return username; - } - - /** - * Easily retrieves one of the {@link Role}'s property or an empty String if - * the requested property is not defined - */ - public final static String getProperty(Role role, String key) { - Object obj = role.getProperties().get(key); - if (obj != null) - return (String) obj; - else - return ""; - } - - // CENTRALIZE SOME METHODS UNTIL API IS STABLE - /** Simply checks if current user is registered */ - public static boolean isRegistered() { - return !CurrentUser.isAnonymous(); - } - - /** Simply checks if current user as a home */ - public static boolean hasHome() { - return isRegistered(); - } - - // SELF HELPERS - /** Simply retrieves the current logged-in user display name. */ - public static User getCurrentUser(UserAdmin userAdmin) { - return (User) getRole(userAdmin, getCurrentUserLdapName()); - } - - /** Simply retrieves the current logged-in user display name. */ - public static String getCurrentUserDisplayName(UserAdmin userAdmin) { - String username = getCurrentUsername(); - return getUserDisplayName(userAdmin, username); - } - - /** Simply retrieves the current logged-in user display name. */ - public static String getCurrentUserMail(UserAdmin userAdmin) { - String username = getCurrentUsername(); - return getUserMail(userAdmin, username); - } - - /** Returns the local name of the current connected user */ - public final static String getUsername(UserAdmin userAdmin) { - LdapName dn = getCurrentUserLdapName(); - return getUsername((User) getRole(userAdmin, dn)); - } - - /** Returns true if the current user is in the specified role */ - public static boolean isUserInRole(String role) { - Set roles = CurrentUser.roles(); - return roles.contains(role); - } - - /** Simply checks if current user is the same as the passed one */ - public static boolean isCurrentUser(User user) { - String userName = getProperty(user, LdifName.dn.name()); - try { - LdapName selfUserName = getCurrentUserLdapName(); - LdapName userLdapName = new LdapName(userName); - if (userLdapName.equals(selfUserName)) - return true; - else - return false; - } catch (InvalidNameException e) { - throw new ArgeoException("User " + user + " has an unvalid dn: " - + userName, e); - } - } - - public final static LdapName getCurrentUserLdapName() { - String name = getCurrentUsername(); - return getLdapName(name); - } - - /** Simply retrieves username for current user, generally a LDAP dn */ - public static String getCurrentUsername() { - Subject subject = currentSubject(); - String name = subject.getPrincipals(X500Principal.class).iterator() - .next().toString(); - return name; - } - - /** - * Fork of the {@link CurrentUser#currentSubject} method that is private. - * TODO Enhance and factorize - */ - private static Subject currentSubject() { - CmsView cmsView = CmsUtils.getCmsView(); - if (cmsView != null) - return cmsView.getSubject(); - Subject subject = Subject.getSubject(AccessController.getContext()); - if (subject != null) - return subject; - throw new RuntimeException("Cannot find related subject"); - } - - // HOME MANAGEMENT - /** - * Simply retrieves the *relative* path to the current user home node from - * the base home node - */ - public static String getCurrentUserHomeRelPath() { - return getHomeRelPath(getCurrentUsername()); - } - - /** - * Simply retrieves the *relative* path to the home node of a user given its - * userName - */ - public static String getHomeRelPath(String userName) { - String id = getUserUid(userName); - String currHomePath = JcrUtils.firstCharsToPath(id, 2) + "/" + id; - return currHomePath; - } - - // HELPERS TO RETRIEVE REMARKABLE PROPERTIES - /** Simply retrieves the user uid from his dn with no useradmin */ - public static String getUserUid(String dn) { - LdapName ldapName = getLdapName(dn); - Rdn last = ldapName.getRdn(ldapName.size() - 1); - if (last.getType().toLowerCase().equals(LdifName.uid.name()) - || last.getType().toLowerCase().equals(LdifName.cn.name())) - return (String) last.getValue(); - else - throw new ArgeoException("Cannot retrieve user uid, " - + "non valid dn: " + dn); - } - - /** - * Returns the local username if no user with this dn is found or if the - * found user has no defined display name - */ - public static String getUserDisplayName(UserAdmin userAdmin, String dn) { - Role user = getRole(userAdmin, getLdapName(dn)); - if (user == null) - return getUserUid(dn); - String displayName = getProperty(user, LdifName.displayName.name()); - if (EclipseUiUtils.isEmpty(displayName)) - displayName = getProperty(user, LdifName.cn.name()); - if (EclipseUiUtils.isEmpty(displayName)) - return getUserUid(dn); - else - return displayName; - } - - /** - * Returns null if no user with this dn is found or if the found user has no - * defined mail - */ - public static String getUserMail(UserAdmin userAdmin, String dn) { - Role user = getRole(userAdmin, getLdapName(dn)); - if (user == null) - return null; - else - return getProperty(user, LdifName.mail.name()); - } - - // VARIOUS UI HELPERS - public final static String buildDefaultCn(String firstName, String lastName) { - return (firstName.trim() + " " + lastName.trim() + " ").trim(); - } - - /** Simply retrieves a display name of the relevant domain */ - public final static String getDomainName(User user) { - String dn = user.getName(); - if (dn.endsWith(AuthConstants.ROLES_BASEDN)) - return "System roles"; - try { - LdapName name = new LdapName(dn); - List rdns = name.getRdns(); - String dname = null; - int i = 0; - loop: while (i < rdns.size()) { - Rdn currrRdn = rdns.get(i); - if (!LdifName.dc.name().equals(currrRdn.getType())) - break loop; - else { - String currVal = (String) currrRdn.getValue(); - dname = dname == null ? currVal : currVal + "." + dname; - } - i++; - } - return dname; - } catch (InvalidNameException e) { - throw new ArgeoException("Unable to get domain name for " + dn, e); - } - } - - // Local Helpers - /** Simply retrieves a LDAP name from a dn with no exception */ - public static LdapName getLdapName(String dn) { - try { - return new LdapName(dn); - } catch (InvalidNameException e) { - throw new ArgeoException("Cannot parse LDAP name " + dn, e); - } - } -} \ No newline at end of file diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UserAdminWrapper.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UserAdminWrapper.java index ff4018a2c..43ce58da9 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UserAdminWrapper.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UserAdminWrapper.java @@ -12,7 +12,7 @@ import org.osgi.service.useradmin.UserAdminListener; /** Centralize interaction with the UserAdmin in this bundle */ public class UserAdminWrapper extends - org.argeo.security.ui.admin.internal.AbstractUserAdminWrapper { + org.argeo.cms.util.useradmin.UserAdminWrapper { // private Log log = LogFactory.getLog(UserAdminWrapper.class); // Registered listeners diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteGroups.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteGroups.java index d21cc48b1..868aa0fc7 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteGroups.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteGroups.java @@ -19,8 +19,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.security.ui.admin.SecurityAdminPlugin; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.argeo.security.ui.admin.internal.parts.UserEditorInput; import org.eclipse.core.commands.AbstractHandler; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteUsers.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteUsers.java index 3e2644f6f..87da43cdf 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteUsers.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteUsers.java @@ -19,8 +19,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.security.ui.admin.SecurityAdminPlugin; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.argeo.security.ui.admin.internal.parts.UserEditorInput; import org.eclipse.core.commands.AbstractHandler; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewUser.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewUser.java index 77230390b..e408b1bee 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewUser.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewUser.java @@ -24,13 +24,13 @@ import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; import org.argeo.ArgeoException; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.dialogs.ErrorFeedback; import org.argeo.jcr.ArgeoNames; import org.argeo.osgi.useradmin.LdifName; import org.argeo.osgi.useradmin.UserAdminConf; import org.argeo.security.ui.admin.SecurityAdminPlugin; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java index 952747988..4a441a1a2 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java @@ -19,13 +19,13 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.eclipse.ui.ColumnDefinition; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.parts.LdifUsersTable; import org.argeo.jcr.ArgeoNames; import org.argeo.osgi.useradmin.LdifName; import org.argeo.security.ui.admin.SecurityAdminImages; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.argeo.security.ui.admin.internal.parts.UserEditor.GroupChangeListener; import org.argeo.security.ui.admin.internal.parts.UserEditor.MainInfoListener; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupsView.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupsView.java index 620e1d378..6b193f444 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupsView.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupsView.java @@ -22,6 +22,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.ArgeoException; import org.argeo.cms.auth.AuthConstants; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.eclipse.ui.ColumnDefinition; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.parts.LdifUsersTable; @@ -29,7 +30,6 @@ import org.argeo.jcr.ArgeoNames; import org.argeo.osgi.useradmin.LdifName; import org.argeo.security.ui.admin.SecurityAdminPlugin; import org.argeo.security.ui.admin.internal.UiUserAdminListener; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.argeo.security.ui.admin.internal.providers.CommonNameLP; import org.argeo.security.ui.admin.internal.providers.DomainNameLP; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserBatchUpdateWizard.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserBatchUpdateWizard.java index 6f581853c..d2dbadd08 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserBatchUpdateWizard.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserBatchUpdateWizard.java @@ -12,13 +12,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.ArgeoException; import org.argeo.cms.auth.AuthConstants; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.eclipse.ui.ColumnDefinition; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.parts.LdifUsersTable; import org.argeo.jcr.ArgeoNames; import org.argeo.osgi.useradmin.LdifName; import org.argeo.security.ui.admin.internal.UiAdminUtils; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.argeo.security.ui.admin.internal.providers.CommonNameLP; import org.argeo.security.ui.admin.internal.providers.DomainNameLP; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java index 796d2cdd4..715d34310 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java @@ -19,10 +19,10 @@ import java.util.ArrayList; import java.util.List; import org.argeo.ArgeoException; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.osgi.useradmin.LdifName; import org.argeo.security.ui.admin.SecurityAdminPlugin; import org.argeo.security.ui.admin.internal.UiUserAdminListener; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.swt.events.ModifyEvent; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java index 06b430f74..833ae32a7 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java @@ -21,13 +21,13 @@ import java.util.List; import org.argeo.ArgeoException; import org.argeo.cms.auth.AuthConstants; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.eclipse.ui.ColumnDefinition; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.parts.LdifUsersTable; import org.argeo.jcr.ArgeoNames; import org.argeo.osgi.useradmin.LdifName; import org.argeo.security.ui.admin.SecurityAdminImages; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.argeo.security.ui.admin.internal.parts.UserEditor.GroupChangeListener; import org.argeo.security.ui.admin.internal.parts.UserEditor.MainInfoListener; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UsersView.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UsersView.java index 5bb50a40f..edafa2851 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UsersView.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UsersView.java @@ -20,6 +20,7 @@ import java.util.List; import org.argeo.ArgeoException; import org.argeo.cms.auth.AuthConstants; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.eclipse.ui.ColumnDefinition; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.parts.LdifUsersTable; @@ -27,7 +28,6 @@ import org.argeo.jcr.ArgeoNames; import org.argeo.osgi.useradmin.LdifName; import org.argeo.security.ui.admin.SecurityAdminPlugin; import org.argeo.security.ui.admin.internal.UiUserAdminListener; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.argeo.security.ui.admin.internal.providers.CommonNameLP; import org.argeo.security.ui.admin.internal.providers.DomainNameLP; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/CommonNameLP.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/CommonNameLP.java index 5b6fbdd3e..d45c0b603 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/CommonNameLP.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/CommonNameLP.java @@ -1,7 +1,7 @@ package org.argeo.security.ui.admin.internal.providers; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.osgi.useradmin.LdifName; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.osgi.service.useradmin.User; /** Simply declare a label provider that returns the common name of a user */ diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/DomainNameLP.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/DomainNameLP.java index b1d84a155..795fd0af3 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/DomainNameLP.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/DomainNameLP.java @@ -1,6 +1,6 @@ package org.argeo.security.ui.admin.internal.providers; -import org.argeo.security.ui.admin.internal.UserAdminUtils; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.osgi.service.useradmin.User; /** The human friendly domain name for the corresponding user. */ diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/MailLP.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/MailLP.java index d24cab67a..0a6dcb604 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/MailLP.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/MailLP.java @@ -1,7 +1,7 @@ package org.argeo.security.ui.admin.internal.providers; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.osgi.useradmin.LdifName; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.osgi.service.useradmin.User; /** Simply declare a label provider that returns the Primary Mail of a user */ diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java index 5ca476a7d..39bac0a2a 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java @@ -4,7 +4,7 @@ import javax.naming.InvalidNameException; import javax.naming.ldap.LdapName; import org.argeo.ArgeoException; -import org.argeo.security.ui.admin.internal.UserAdminUtils; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.swt.SWT; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserFilter.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserFilter.java index 2a230dd6b..5f753d1c3 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserFilter.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserFilter.java @@ -3,8 +3,8 @@ package org.argeo.security.ui.admin.internal.providers; import static org.argeo.eclipse.ui.EclipseUiUtils.notEmpty; import org.argeo.cms.auth.AuthConstants; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.osgi.useradmin.LdifName; -import org.argeo.security.ui.admin.internal.UserAdminUtils; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import org.osgi.service.useradmin.User;