X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2FAbstractUserAdminWrapper.java;fp=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2FAbstractUserAdminWrapper.java;h=0000000000000000000000000000000000000000;hb=89ad04528a66488eb3ad6f51c198d5df3c81b04c;hp=e222656dfe42315ba351012aa2937fc422b33788;hpb=f2d02f1aa5dc31c75049be1ba2b79a49f3d856af;p=lgpl%2Fargeo-commons.git 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