Factorize userAdmin utils
authorBruno Sinou <bsinou@argeo.org>
Thu, 10 Dec 2015 16:29:58 +0000 (16:29 +0000)
committerBruno Sinou <bsinou@argeo.org>
Thu, 10 Dec 2015 16:29:58 +0000 (16:29 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@8693 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

21 files changed:
org.argeo.cms/src/org/argeo/cms/util/useradmin/UserAdminUtils.java [new file with mode: 0644]
org.argeo.cms/src/org/argeo/cms/util/useradmin/UserAdminWrapper.java [new file with mode: 0644]
org.argeo.security.ui.admin/bnd.bnd
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/SecurityAdminPerspective.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UserAdminWrapper.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteGroups.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/DeleteUsers.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewGroup.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewUser.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupsView.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserBatchUpdateWizard.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UsersView.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/CommonNameLP.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/DomainNameLP.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/MailLP.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserFilter.java

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 (file)
index 0000000..8a8a218
--- /dev/null
@@ -0,0 +1,247 @@
+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.CmsException;
+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 User} given a LDAP name */
+       public final static User getUser(UserAdmin userAdmin, LdapName dn) {
+               User user = userAdmin.getUser(LdifName.dn.name(), dn.toString());
+               return user;
+       }
+
+       /** 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 Role property or an empty String if the
+        * requested property is not defined for the passed user
+        */
+       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 getUser(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(getUser(userAdmin, dn));
+       }
+
+       /** Returns true if the current user is in the specified role */
+       public static boolean isUserInRole(String role) {
+               Set<String> 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 CmsException("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) {
+               try {
+                       LdapName ldapName = new LdapName(dn);
+                       Rdn last = ldapName.getRdn(ldapName.size() - 1);
+                       if (last.getType().equals(LdifName.uid.name()))
+                               return (String) last.getValue();
+                       else
+                               throw new ArgeoException("Cannot retrieve user uid, "
+                                               + "non valid dn: " + dn);
+               } catch (InvalidNameException e) {
+                       throw new ArgeoException("Cannot parse LDAP name " + dn, e);
+               }
+       }
+
+       /**
+        * 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) {
+               User user = getUser(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) {
+               User user = getUser(userAdmin, getLdapName(dn));
+               if (user == null)
+                       return null;
+               else
+                       return getProperty(user, LdifName.mail.name());
+       }
+
+       // VARIOUS UI HELPERS
+       public final static String getDefaultCn(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<Rdn> 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 (file)
index 0000000..8d91c71
--- /dev/null
@@ -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 class UserAdminWrapper {
+       // private Log log = LogFactory.getLog(UserAdminWrapper.class);
+
+       private UserAdmin userAdmin;
+       private ServiceReference<UserAdmin> userAdminServiceReference;
+       private UserTransaction userTransaction;
+
+       /* USER ADMIN LISTENER MANAGEMENT */
+       List<UserAdminListener> listeners = new ArrayList<UserAdminListener>();
+
+       // 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<String, String> getKnownBaseDns(boolean onlyWritable) {
+               Map<String, String> dns = new HashMap<String, String>();
+               for (String uri : userAdminServiceReference.getPropertyKeys()) {
+                       if (!uri.startsWith("/"))
+                               continue;
+                       Dictionary<String, ?> 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<UserAdmin> userAdminServiceReference) {
+               this.userAdminServiceReference = userAdminServiceReference;
+       }
+}
\ No newline at end of file
index 6a128f6990ca6ba3e4e00d41a9459d13a80b4591..d5f00ceaf46dc1d07011d27b87179f0b015ef355 100644 (file)
@@ -5,6 +5,7 @@ Bundle-ActivationPolicy: lazy
 Require-Bundle:        org.eclipse.core.runtime
 
 Import-Package:        org.eclipse.core.runtime.jobs,\
+org.argeo.cms.auth,\
 org.argeo.eclipse.spring,\
 org.eclipse.jface.window,\
 org.eclipse.swt,\
index ab92b8d19a5be788cb16abb0dc5dd91b11b3cd05..c65b00f9e4988dba2073b9a2c899b587912c3fe1 100644 (file)
@@ -31,9 +31,10 @@ public class SecurityAdminPerspective implements IPerspectiveFactory {
                IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT,
                                0.25f, editorArea);
                left.addView(UsersView.ID);
+               left.addView(GroupsView.ID);
 
-               IFolderLayout right = layout.createFolder("right", IPageLayout.RIGHT,
-                               0.70f, editorArea);
-               right.addView(GroupsView.ID);
+               // IFolderLayout right = layout.createFolder("right", IPageLayout.RIGHT,
+               // 0.70f, editorArea);
+               // right.addView(GroupsView.ID);
        }
 }
index 45a82c7ba6869c10915be9c8ed16c553ed0b2ef8..14762632ecb86153775577b29d450afa564b0396 100644 (file)
 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 javax.transaction.Status;
 import javax.transaction.UserTransaction;
 
 import org.argeo.ArgeoException;
-import org.argeo.cms.auth.AuthConstants;
-import org.argeo.cms.auth.CurrentUser;
-import org.argeo.osgi.useradmin.LdifName;
 import org.argeo.security.ui.admin.internal.providers.UserTransactionProvider;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.services.ISourceProviderService;
-import org.osgi.service.useradmin.Role;
-import org.osgi.service.useradmin.User;
-import org.osgi.service.useradmin.UserAdmin;
 
 /** First effort to centralize back end methods used by the user admin UI */
 public class UiAdminUtils {
-
-       /** returns the local name of the current connected user */
-       public final static String getUsername(UserAdmin userAdmin) {
-               LdapName dn = getLdapName();
-               return getUsername(getUser(userAdmin, dn));
-       }
-
-       /** Returns true if the current user is in the specified role */
-       public static boolean isUserInRole(String role) {
-               Set<String> roles = CurrentUser.roles();
-               return roles.contains(role);
-       }
-
-       public final static boolean isCurrentUser(User user) {
-               String userName = getProperty(user, LdifName.dn.name());
-               try {
-                       LdapName selfUserName = UiAdminUtils.getLdapName();
-                       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 getLdapName() {
-               Subject subject = Subject.getSubject(AccessController.getContext());
-               String name = subject.getPrincipals(X500Principal.class).iterator()
-                               .next().toString();
-               LdapName dn;
-               try {
-                       dn = new LdapName(name);
-               } catch (InvalidNameException e) {
-                       throw new ArgeoException("Invalid user dn " + name, e);
-               }
-               return dn;
-       }
-
-       public final static User getUser(UserAdmin userAdmin, LdapName dn) {
-               User user = userAdmin.getUser(LdifName.dn.name(), dn.toString());
-               return user;
-       }
-
-       public final static String getUsername(User user) {
-               String cn = getProperty(user, LdifName.cn.name());
-               if (isEmpty(cn))
-                       cn = getProperty(user, LdifName.uid.name());
-               return cn;
-       }
-
-       /** 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;
-                       name = new LdapName(dn);
-                       List<Rdn> 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);
-               }
-       }
-
-       public final static String getProperty(Role role, String key) {
-               Object obj = role.getProperties().get(key);
-               if (obj != null)
-                       return (String) obj;
-               else
-                       return "";
-       }
-
-       public final static String getDefaultCn(String firstName, String lastName) {
-               return (firstName.trim() + " " + lastName.trim() + " ").trim();
-       }
-
        /*
         * INTERNAL METHODS: Below methods are meant to stay here and are not part
         * of a potential generic backend to manage the useradmin
         */
-       public final static boolean notNull(String string) {
-               if (string == null)
-                       return false;
-               else
-                       return !"".equals(string.trim());
-       }
-
-       public final static boolean isEmpty(String string) {
-               if (string == null)
-                       return true;
-               else
-                       return "".equals(string.trim());
-       }
-
-       /** Must be called from the UI Thread. */
-       public final static void beginTransactionIfNeeded(
-                       UserTransaction userTransaction) {
-               try {
-                       if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION) {
-                               userTransaction.begin();
-                               notifyTransactionStateChange(userTransaction);
-                       }
-               } catch (Exception e) {
-                       throw new ArgeoException("Unable to begin transaction", e);
-               }
-       }
-
        /** Easily notify the ActiveWindow that the transaction had a state change */
        public final static void notifyTransactionStateChange(
                        UserTransaction userTransaction) {
index cfad78007914d6b24f363aaf5ad7a0150a1770c5..43ce58da9fba74bb7f06c0ea9bb7a3b5f8acd551 100644 (file)
@@ -1,42 +1,30 @@
 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;
 
 /** Centralize interaction with the UserAdmin in this bundle */
-public class UserAdminWrapper {
+public class UserAdminWrapper extends
+               org.argeo.cms.util.useradmin.UserAdminWrapper {
        // private Log log = LogFactory.getLog(UserAdminWrapper.class);
 
-       private UserAdmin userAdmin;
-       private ServiceReference<UserAdmin> userAdminServiceReference;
-       private UserTransaction userTransaction;
-
        // Registered listeners
        List<UserAdminListener> listeners = new ArrayList<UserAdminListener>();
 
-       // TODO implement safer mechanism
-       public void addListener(UserAdminListener userAdminListener) {
-               if (!listeners.contains(userAdminListener))
-                       listeners.add(userAdminListener);
-       }
-
-       /** Must be called from the UI Thread. */
+       /**
+        * Overwrite the normal begin transaction behaviour to also notify the UI.
+        * Must be called from the UI Thread.
+        */
        public UserTransaction beginTransactionIfNeeded() {
                try {
+                       UserTransaction userTransaction = getUserTransaction();
                        if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION) {
                                userTransaction.begin();
                                UiAdminUtils.notifyTransactionStateChange(userTransaction);
@@ -47,6 +35,12 @@ public class UserAdminWrapper {
                }
        }
 
+       // TODO implement safer mechanism
+       public void addListener(UserAdminListener userAdminListener) {
+               if (!listeners.contains(userAdminListener))
+                       listeners.add(userAdminListener);
+       }
+
        // Expose this?
        public void removeListener(UserAdminListener userAdminListener) {
                if (listeners.contains(userAdminListener))
@@ -57,44 +51,4 @@ public class UserAdminWrapper {
                for (UserAdminListener listener : listeners)
                        listener.roleChanged(event);
        }
-
-       public UserAdmin getUserAdmin() {
-               return userAdmin;
-       }
-
-       public UserTransaction getUserTransaction() {
-               return userTransaction;
-       }
-
-       public void setUserAdminServiceReference(
-                       ServiceReference<UserAdmin> userAdminServiceReference) {
-               this.userAdminServiceReference = userAdminServiceReference;
-       }
-
-       public Map<String, String> getKnownBaseDns(boolean onlyWritable) {
-               Map<String, String> dns = new HashMap<String, String>();
-               for (String uri : userAdminServiceReference.getPropertyKeys()) {
-                       if (!uri.startsWith("/"))
-                               continue;
-                       Dictionary<String, ?> 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;
-       }
-       
-       /* DEPENDENCY INJECTION */
-       public void setUserAdmin(UserAdmin userAdmin) {
-               this.userAdmin = userAdmin;
-       }
-
-       public void setUserTransaction(UserTransaction userTransaction) {
-               this.userTransaction = userTransaction;
-       }
 }
\ No newline at end of file
index 93b1b61ad942a16fc89543633bd50dc4abd19c5a..868aa0fc7f6a3239ad5591f1b2cb315d63f4b94b 100644 (file)
@@ -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.UiAdminUtils;
 import org.argeo.security.ui.admin.internal.UserAdminWrapper;
 import org.argeo.security.ui.admin.internal.parts.UserEditorInput;
 import org.eclipse.core.commands.AbstractHandler;
@@ -55,7 +55,7 @@ public class DeleteGroups extends AbstractHandler {
                StringBuilder builder = new StringBuilder();
                while (it.hasNext()) {
                        Group currGroup = it.next();
-                       String groupName = UiAdminUtils.getUsername(currGroup);
+                       String groupName = UserAdminUtils.getUsername(currGroup);
                        // TODO add checks
                        builder.append(groupName).append("; ");
                        groups.add(currGroup);
index 44c76ea1a63b6c0adc0ecb9e01b2d554dafabfe5..87da43cdf14f7495c14ee3ba45837baf9cb014d3 100644 (file)
@@ -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.UiAdminUtils;
 import org.argeo.security.ui.admin.internal.UserAdminWrapper;
 import org.argeo.security.ui.admin.internal.parts.UserEditorInput;
 import org.eclipse.core.commands.AbstractHandler;
@@ -56,8 +56,8 @@ public class DeleteUsers extends AbstractHandler {
 
                while (it.hasNext()) {
                        User currUser = it.next();
-                       String userName = UiAdminUtils.getUsername(currUser);
-                       if (UiAdminUtils.isCurrentUser(currUser)) {
+                       String userName = UserAdminUtils.getUsername(currUser);
+                       if (UserAdminUtils.isCurrentUser(currUser)) {
                                MessageDialog.openError(HandlerUtil.getActiveShell(event),
                                                "Deletion forbidden",
                                                "You cannot delete your own user this way.");
index 5943c0c963a28fbb2d1cc6f53255db3b2f4b8d57..086fdabac6df700bbfa27608f643608700788ef1 100644 (file)
@@ -25,7 +25,6 @@ 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.UiAdminUtils;
 import org.argeo.security.ui.admin.internal.UserAdminWrapper;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -93,7 +92,7 @@ public class NewGroup extends AbstractHandler {
                                                .createRole(getDn(commonName), Role.GROUP);
                                Dictionary props = group.getProperties();
                                String descStr = descriptionTxt.getText();
-                               if (UiAdminUtils.notNull(descStr))
+                               if (EclipseUiUtils.notEmpty(descStr))
                                        props.put(LdifName.description.name(), descStr);
                                userAdminWrapper.notifyListeners(new UserAdminEvent(null,
                                                UserAdminEvent.ROLE_CREATED, group));
@@ -216,7 +215,7 @@ public class NewGroup extends AbstractHandler {
                        if (EclipseUiUtils.notEmpty(bdn)) {
                                Dictionary<String, ?> props = UserAdminConf.uriAsProperties(dns
                                                .get(bdn));
-                               String dn = LdifName.cn.name()+"=" + cn + ","
+                               String dn = LdifName.cn.name() + "=" + cn + ","
                                                + UserAdminConf.groupBase.getValue(props) + "," + bdn;
                                return dn;
                        }
index 16e444dc5b91ac686ece74bcf86ae687358e5a2e..e302087c1e434ca039e60d4cd595e451e2b2a740 100644 (file)
@@ -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.UiAdminUtils;
 import org.argeo.security.ui.admin.internal.UserAdminWrapper;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -114,20 +114,20 @@ public class NewUser extends AbstractHandler {
                                Dictionary props = user.getProperties();
 
                                String lastNameStr = lastNameTxt.getText();
-                               if (UiAdminUtils.notNull(lastNameStr))
+                               if (EclipseUiUtils.notEmpty(lastNameStr))
                                        props.put(LdifName.sn.name(), lastNameStr);
 
                                String firstNameStr = firstNameTxt.getText();
-                               if (UiAdminUtils.notNull(firstNameStr))
+                               if (EclipseUiUtils.notEmpty(firstNameStr))
                                        props.put(LdifName.givenName.name(), firstNameStr);
 
-                               String cn = UiAdminUtils
-                                               .getDefaultCn(firstNameStr, lastNameStr);
-                               if (UiAdminUtils.notNull(cn))
+                               String cn = UserAdminUtils.getDefaultCn(firstNameStr,
+                                               lastNameStr);
+                               if (EclipseUiUtils.notEmpty(cn))
                                        props.put(LdifName.cn.name(), cn);
 
                                String mailStr = primaryMailTxt.getText();
-                               if (UiAdminUtils.notNull(mailStr))
+                               if (EclipseUiUtils.notEmpty(mailStr))
                                        props.put(LdifName.mail.name(), mailStr);
 
                                char[] password = mainUserInfo.getPassword();
index 62583b5112d87977b78810b06d8c1bbb7429c964..47c96f63276a7467d87d3715261c71fb4a91fb8f 100644 (file)
@@ -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.UiAdminUtils;
 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;
@@ -107,11 +107,11 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
                GridLayout layout = new GridLayout(2, false);
                body.setLayout(layout);
 
-               final Text dnTxt = createLT(body, "DN",group.getName());
+               final Text dnTxt = createLT(body, "DN", group.getName());
                dnTxt.setEnabled(false);
 
                final Text cnTxt = createLT(body, "Common Name",
-                               UiAdminUtils.getProperty(group, LdifName.cn.name()));
+                               UserAdminUtils.getProperty(group, LdifName.cn.name()));
                cnTxt.setEnabled(false);
 
                Label descLbl = new Label(body, SWT.LEAD);
@@ -155,9 +155,9 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
                        public void refresh() {
                                refreshFormTitle(group);
                                dnTxt.setText(group.getName());
-                               cnTxt.setText(UiAdminUtils.getProperty(group,
+                               cnTxt.setText(UserAdminUtils.getProperty(group,
                                                LdifName.cn.name()));
-                               descTxt.setText(UiAdminUtils.getProperty(group,
+                               descTxt.setText(UserAdminUtils.getProperty(group,
                                                LdifName.description.name()));
                                super.refresh();
                        }
@@ -299,7 +299,7 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
                        // StringBuilder builder = new StringBuilder();
                        while (it.hasNext()) {
                                User currUser = it.next();
-                               // String groupName = UiAdminUtils.getUsername(currGroup);
+                               // String groupName = UserAdminUtils.getUsername(currGroup);
                                // builder.append(groupName).append("; ");
                                users.add(currUser);
                        }
@@ -345,7 +345,7 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
                        refreshFormTitle(group);
                        getSection().setText(
                                        "Members of group "
-                                                       + UiAdminUtils.getProperty(group,
+                                                       + UserAdminUtils.getProperty(group,
                                                                        LdifName.cn.name()));
                        userViewer.refresh();
                        super.refresh();
@@ -441,7 +441,7 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
        // LOCAL HELPERS
        private void refreshFormTitle(Group group) {
                getManagedForm().getForm().setText(
-                               UiAdminUtils.getProperty(group, LdifName.cn.name()));
+                               UserAdminUtils.getProperty(group, LdifName.cn.name()));
        }
 
        private Composite addSection(FormToolkit tk, Composite parent, String title) {
index 95a4c7f45eb695a985a11d27eae8a32b06e7e53e..77621fe30c80cce0b98162b8156c8ff64b9c596d 100644 (file)
@@ -22,13 +22,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.SecurityAdminPlugin;
-import org.argeo.security.ui.admin.internal.UiAdminUtils;
 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;
@@ -73,7 +73,7 @@ public class GroupsView extends ViewPart implements ArgeoNames {
        public void createPartControl(Composite parent) {
                parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
 
-               boolean isAdmin = UiAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN);
+               boolean isAdmin = UserAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN);
 
                // Define the displayed columns
                columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 26));
@@ -157,7 +157,7 @@ public class GroupsView extends ViewPart implements ArgeoNames {
                        try {
                                StringBuilder builder = new StringBuilder();
                                StringBuilder tmpBuilder = new StringBuilder();
-                               if (UiAdminUtils.notNull(filter))
+                               if (EclipseUiUtils.notEmpty(filter))
                                        for (String prop : knownProps) {
                                                tmpBuilder.append("(");
                                                tmpBuilder.append(prop);
index f2038f2257acdb4d13362eb1c967edd71ef569c1..d2dbadd085db8338f8ca52e322e673808d986032 100644 (file)
@@ -12,6 +12,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;
@@ -417,7 +418,7 @@ public class UserBatchUpdateWizard extends Wizard {
                                        200));
 
                        // Only show technical DN to admin
-                       if (UiAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN))
+                       if (UserAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN))
                                columnDefs.add(new ColumnDefinition(new UserNameLP(),
                                                "Distinguished Name", 300));
 
@@ -470,7 +471,7 @@ public class UserBatchUpdateWizard extends Wizard {
                                        StringBuilder builder = new StringBuilder();
 
                                        StringBuilder tmpBuilder = new StringBuilder();
-                                       if (UiAdminUtils.notNull(filter))
+                                       if (EclipseUiUtils.notEmpty(filter))
                                                for (String prop : knownProps) {
                                                        tmpBuilder.append("(");
                                                        tmpBuilder.append(prop);
@@ -501,7 +502,7 @@ public class UserBatchUpdateWizard extends Wizard {
                                for (Role role : roles)
                                        // Prevent current logged in user to perform batch on
                                        // himself
-                                       if (!UiAdminUtils.isCurrentUser((User) role))
+                                       if (!UserAdminUtils.isCurrentUser((User) role))
                                                users.add((User) role);
                                return users;
                        }
@@ -531,7 +532,7 @@ public class UserBatchUpdateWizard extends Wizard {
                        columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain",
                                        200));
                        // Only show technical DN to admin
-                       if (UiAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN))
+                       if (UserAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN))
                                columnDefs.add(new ColumnDefinition(new UserNameLP(),
                                                "Distinguished Name", 300));
                        userTableCmp = new ChosenUsersTableViewer(pageCmp, SWT.MULTI
index 8f7762fe78b3fe8e606951db723ab1bbabd3ebaf..1ec321d6c79833e1482b532573d7e692e8ee4124 100644 (file)
@@ -19,9 +19,9 @@ 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.UiAdminUtils;
 import org.argeo.security.ui.admin.internal.UserAdminWrapper;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.swt.events.ModifyEvent;
@@ -98,7 +98,7 @@ public class UserEditor extends FormEditor {
 
        void updateEditorTitle(String title) {
                if (title == null) {
-                       String commonName = UiAdminUtils.getProperty(user,
+                       String commonName = UserAdminUtils.getProperty(user,
                                        LdifName.cn.name());
                        title = "".equals(commonName) ? user.getName() : commonName;
                }
index 5875698b54aa468609ed5304daec50da298242d5..1a41777272ea0f03cd49038c85b8e639aa7372de 100644 (file)
@@ -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.UiAdminUtils;
 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;
@@ -105,7 +105,7 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                appendOverviewPart(body, user);
                // Remove to ability to force the password for his own user. The user
                // must then use the change pwd feature
-               if (!UiAdminUtils.isCurrentUser(user))
+               if (!UserAdminUtils.isCurrentUser(user))
                        appendPasswordPart(body, user);
                appendMemberOfPart(body, user);
        }
@@ -119,21 +119,21 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                body.setLayout(new GridLayout(2, false));
 
                final Text distinguishedName = createLT(tk, body, "User Name",
-                               UiAdminUtils.getProperty(user, LdifName.uid.name()));
+                               UserAdminUtils.getProperty(user, LdifName.uid.name()));
                distinguishedName.setEnabled(false);
 
                final Text commonName = createLT(tk, body, "Common Name",
-                               UiAdminUtils.getProperty(user, LdifName.cn.name()));
+                               UserAdminUtils.getProperty(user, LdifName.cn.name()));
                commonName.setEnabled(false);
 
                final Text firstName = createLT(tk, body, "First name",
-                               UiAdminUtils.getProperty(user, LdifName.givenName.name()));
+                               UserAdminUtils.getProperty(user, LdifName.givenName.name()));
 
                final Text lastName = createLT(tk, body, "Last name",
-                               UiAdminUtils.getProperty(user, LdifName.sn.name()));
+                               UserAdminUtils.getProperty(user, LdifName.sn.name()));
 
                final Text email = createLT(tk, body, "Email",
-                               UiAdminUtils.getProperty(user, LdifName.mail.name()));
+                               UserAdminUtils.getProperty(user, LdifName.mail.name()));
 
                // create form part (controller)
                AbstractFormPart part = new SectionPart((Section) body.getParent()) {
@@ -167,15 +167,15 @@ public class UserMainPage extends FormPage implements ArgeoNames {
 
                        @Override
                        public void refresh() {
-                               distinguishedName.setText(UiAdminUtils.getProperty(user,
+                               distinguishedName.setText(UserAdminUtils.getProperty(user,
                                                LdifName.uid.name()));
-                               commonName.setText(UiAdminUtils.getProperty(user,
+                               commonName.setText(UserAdminUtils.getProperty(user,
                                                LdifName.cn.name()));
-                               firstName.setText(UiAdminUtils.getProperty(user,
+                               firstName.setText(UserAdminUtils.getProperty(user,
                                                LdifName.givenName.name()));
-                               lastName.setText(UiAdminUtils.getProperty(user,
+                               lastName.setText(UserAdminUtils.getProperty(user,
                                                LdifName.sn.name()));
-                               email.setText(UiAdminUtils.getProperty(user,
+                               email.setText(UserAdminUtils.getProperty(user,
                                                LdifName.mail.name()));
                                refreshFormTitle(user);
                                super.refresh();
@@ -252,7 +252,7 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                Composite body = (Composite) section.getClient();
                body.setLayout(EclipseUiUtils.noSpaceGridLayout());
 
-               boolean isAdmin = UiAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN);
+               boolean isAdmin = UserAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN);
 
                // Displayed columns
                List<ColumnDefinition> columnDefs = new ArrayList<ColumnDefinition>();
@@ -383,7 +383,7 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                        }
                });
 
-               String tooltip = "Remove " + UiAdminUtils.getUsername(user)
+               String tooltip = "Remove " + UserAdminUtils.getUsername(user)
                                + " from the below selected groups";
                Action action = new RemoveMembershipAction(userViewer, user, tooltip,
                                SecurityAdminImages.ICON_REMOVE_DESC);
@@ -417,7 +417,7 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                        // StringBuilder builder = new StringBuilder();
                        while (it.hasNext()) {
                                Group currGroup = it.next();
-                               // String groupName = UiAdminUtils.getUsername(currGroup);
+                               // String groupName = UserAdminUtils.getUsername(currGroup);
                                // builder.append(groupName).append("; ");
                                groups.add(currGroup);
                        }
@@ -492,7 +492,7 @@ public class UserMainPage extends FormPage implements ArgeoNames {
        // LOCAL HELPERS
        private void refreshFormTitle(User group) {
                getManagedForm().getForm().setText(
-                               UiAdminUtils.getProperty(group, LdifName.cn.name()));
+                               UserAdminUtils.getProperty(group, LdifName.cn.name()));
        }
 
        /** Appends a section with a title */
index afa278212a0b6ea61bd966f714ae2b24b0535e36..ca5e6ab741d2dcd92370d27f953cec213bffe03d 100644 (file)
@@ -20,13 +20,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.SecurityAdminPlugin;
-import org.argeo.security.ui.admin.internal.UiAdminUtils;
 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;
@@ -74,7 +74,7 @@ public class UsersView extends ViewPart implements ArgeoNames {
                columnDefs.add(new ColumnDefinition(new MailLP(), "E-mail", 150));
                columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain", 200));
                // Only show technical DN to admin
-               if (UiAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN))
+               if (UserAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN))
                        columnDefs.add(new ColumnDefinition(new UserNameLP(),
                                        "Distinguished Name", 300));
 
@@ -130,7 +130,7 @@ public class UsersView extends ViewPart implements ArgeoNames {
                                StringBuilder builder = new StringBuilder();
 
                                StringBuilder tmpBuilder = new StringBuilder();
-                               if (UiAdminUtils.notNull(filter))
+                               if (EclipseUiUtils.notEmpty(filter))
                                        for (String prop : knownProps) {
                                                tmpBuilder.append("(");
                                                tmpBuilder.append(prop);
index 46326d268015be543bc29e7b525982dc4a521015..d45c0b603d1e7d30fd47683caea323602e4e5acd 100644 (file)
@@ -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.UiAdminUtils;
 import org.osgi.service.useradmin.User;
 
 /** Simply declare a label provider that returns the common name of a user */
@@ -10,6 +10,6 @@ public class CommonNameLP extends UserAdminAbstractLP {
 
        @Override
        public String getText(User user) {
-               return UiAdminUtils.getProperty(user, LdifName.cn.name());
+               return UserAdminUtils.getProperty(user, LdifName.cn.name());
        }
 }
\ No newline at end of file
index 107a4d1ae53f3756df00283e81d0b6938e2c4bad..795fd0af3fe6b3cb728c4658fcd86156c34355d6 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.security.ui.admin.internal.providers;
 
-import org.argeo.security.ui.admin.internal.UiAdminUtils;
+import org.argeo.cms.util.useradmin.UserAdminUtils;
 import org.osgi.service.useradmin.User;
 
 /** The human friendly domain name for the corresponding user. */
@@ -9,6 +9,6 @@ public class DomainNameLP extends UserAdminAbstractLP {
 
        @Override
        public String getText(User user) {
-               return UiAdminUtils.getDomainName(user);
+               return UserAdminUtils.getDomainName(user);
        }
 }
\ No newline at end of file
index f71d77a7f4c7b32bc93de9e3b76f7e336ac9af38..0a6dcb604f8dd264f2d879efdbffbb3fe48a9818 100644 (file)
@@ -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.UiAdminUtils;
 import org.osgi.service.useradmin.User;
 
 /** Simply declare a label provider that returns the Primary Mail of a user */
@@ -10,6 +10,6 @@ public class MailLP extends UserAdminAbstractLP {
 
        @Override
        public String getText(User user) {
-               return UiAdminUtils.getProperty(user, LdifName.mail.name());
+               return UserAdminUtils.getProperty(user, LdifName.mail.name());
        }
 }
\ No newline at end of file
index 78da623037eeed2d1ca88f2ec25bf71d0cedad81..39bac0a2af4a4ae114430747d1bcfa19659445c0 100644 (file)
@@ -4,7 +4,7 @@ import javax.naming.InvalidNameException;
 import javax.naming.ldap.LdapName;
 
 import org.argeo.ArgeoException;
-import org.argeo.security.ui.admin.internal.UiAdminUtils;
+import org.argeo.cms.util.useradmin.UserAdminUtils;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.swt.SWT;
@@ -26,7 +26,7 @@ public abstract class UserAdminAbstractLP extends ColumnLabelProvider {
        public Font getFont(Object element) {
                // Self as bold
                try {
-                       LdapName selfUserName = UiAdminUtils.getLdapName();
+                       LdapName selfUserName = UserAdminUtils.getCurrentUserLdapName();
                        String userName = ((User) element).getName();
                        LdapName userLdapName = new LdapName(userName);
                        if (userLdapName.equals(selfUserName)) {
index 742b7d3931d2648b8f3d993a92a5eafdfc1ef2a5..0b473446d35d590c868758118cd21c00e951c14f 100644 (file)
@@ -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.UiAdminUtils;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerFilter;
 import org.osgi.service.useradmin.User;
@@ -39,7 +39,7 @@ public class UserFilter extends ViewerFilter {
                if (!showSystemRole
                                && user.getName().matches(
                                                ".*(" + AuthConstants.ROLES_BASEDN + ")"))
-                       // UiAdminUtils.getProperty(user, LdifName.dn.name())
+                       // UserAdminUtils.getProperty(user, LdifName.dn.name())
                        // .toLowerCase().endsWith(AuthConstants.ROLES_BASEDN))
                        return false;
 
@@ -50,7 +50,7 @@ public class UserFilter extends ViewerFilter {
                        return true;
 
                for (String key : knownProps) {
-                       String currVal = UiAdminUtils.getProperty(user, key);
+                       String currVal = UserAdminUtils.getProperty(user, key);
                        if (notEmpty(currVal)
                                        && currVal.toLowerCase().matches(searchString))
                                return true;