X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2FUserAdminWrapper.java;h=2cd3eab213d620bb6527354216b3c6aa488a2736;hb=25e98954db6faeec4ba9950f651e81fbea595b0c;hp=d2ad472b33537d91a27fb3f2a90b72bd2405c693;hpb=f6adb38a306cf2c0610fbb1d5434ded0ee8a9078;p=lgpl%2Fargeo-commons.git 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 d2ad472b3..2cd3eab21 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 @@ -8,13 +8,14 @@ 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; -/** Simplifies the interaction with the UserAdmin in this bundle */ +/** Centralize interaction with the UserAdmin in this bundle */ public class UserAdminWrapper { // private Log log = LogFactory.getLog(UserAdminWrapper.class); @@ -32,12 +33,13 @@ public class UserAdminWrapper { } /** Must be called from the UI Thread. */ - public void beginTransactionIfNeeded() { + public UserTransaction beginTransactionIfNeeded() { try { if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION) { userTransaction.begin(); UiAdminUtils.notifyTransactionStateChange(userTransaction); } + return userTransaction; } catch (Exception e) { throw new ArgeoException("Unable to begin transaction", e); } @@ -62,21 +64,9 @@ public class UserAdminWrapper { return userTransaction; } - /* DEPENDENCY INJECTION */ - public void setUserAdmin(UserAdmin userAdmin) { - this.userAdmin = userAdmin; - } - public void setUserAdminServiceReference( ServiceReference userAdminServiceReference) { this.userAdminServiceReference = userAdminServiceReference; - // for (String uri : userAdminServiceReference.getPropertyKeys()) { - // if (!uri.startsWith("/")) - // continue; - // log.debug(uri); - // Dictionary props = UserAdminConf.uriAsProperties(uri); - // log.debug(props); - // } } public List getKnownBaseDns(boolean onlyWritable) { @@ -90,28 +80,17 @@ public class UserAdminWrapper { if (onlyWritable && "true".equals(readOnly)) continue; + if (baseDn.equalsIgnoreCase(AuthConstants.ROLES_BASEDN)) + continue; dns.add(baseDn); } return dns; } - // // Returns the human friendly domain name give a dn. - // public String getDomainName(String dn) { - // if (dn.endsWith("ou=roles, ou=node")) - // return "System roles"; - // try { - // - // LdapName name; - // name = new LdapName(dn); - // List rdns = name.getRdns(); - // - // String penultimate = (String) rdns.get(rdns.size() - 2).getValue(); - // String last = (String) rdns.get(rdns.size() - 1).getValue(); - // return (penultimate + '.' + last); - // } catch (InvalidNameException e) { - // throw new ArgeoException("Unable to get domain name for " + dn, e); - // } - // } + /* DEPENDENCY INJECTION */ + public void setUserAdmin(UserAdmin userAdmin) { + this.userAdmin = userAdmin; + } public void setUserTransaction(UserTransaction userTransaction) { this.userTransaction = userTransaction;