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);
}
/** 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);
}
return userTransaction;
}
- /* DEPENDENCY INJECTION */
- public void setUserAdmin(UserAdmin userAdmin) {
- this.userAdmin = userAdmin;
- }
-
public void setUserAdminServiceReference(
ServiceReference<UserAdmin> userAdminServiceReference) {
this.userAdminServiceReference = userAdminServiceReference;
- // for (String uri : userAdminServiceReference.getPropertyKeys()) {
- // if (!uri.startsWith("/"))
- // continue;
- // log.debug(uri);
- // Dictionary<String, ?> props = UserAdminConf.uriAsProperties(uri);
- // log.debug(props);
- // }
}
public List<String> getKnownBaseDns(boolean onlyWritable) {
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<Rdn> 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;