X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FHomeRepository.java;h=6900be3addf85f1a9015e20f00c78599ec0afb37;hb=277bb126a4b8523b93c2cd9abd345833a8387eba;hp=d1dfb7dd684c7a7daa435d54f8f0b0cd996ab872;hpb=dcd151c2cfabdf8196b8424a60f15c00429645fe;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/HomeRepository.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/HomeRepository.java index d1dfb7dd6..6900be3ad 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/HomeRepository.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/HomeRepository.java @@ -14,7 +14,7 @@ import javax.naming.ldap.LdapName; import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; -import org.argeo.ArgeoException; +import org.apache.jackrabbit.core.security.SecurityConstants; import org.argeo.cms.CmsException; import org.argeo.cms.auth.AuthConstants; import org.argeo.jcr.ArgeoJcrConstants; @@ -92,6 +92,8 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar return; if (session.getUserID().equals(AuthConstants.ROLE_KERNEL)) return; + if (session.getUserID().equals(SecurityConstants.ADMIN_ID)) + return; if (checkedUsers.contains(username)) return; @@ -176,7 +178,7 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar return userProfile; } catch (RepositoryException e) { JcrUtils.discardQuietly(session); - throw new ArgeoException("Cannot sync node security model for " + username, e); + throw new CmsException("Cannot sync node security model for " + username, e); } } @@ -186,7 +188,7 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar try { dn = new LdapName(username); } catch (InvalidNameException e) { - throw new ArgeoException("Invalid name " + username, e); + throw new CmsException("Invalid name " + username, e); } String userId = dn.getRdn(dn.size() - 1).getValue().toString(); int atIndex = userId.indexOf('@'); @@ -196,7 +198,7 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar return base + '/' + JcrUtils.firstCharsToPath(domain, 2) + '/' + domain + '/' + JcrUtils.firstCharsToPath(name, 2) + '/' + name; } else if (atIndex == 0 || atIndex == (userId.length() - 1)) { - throw new ArgeoException("Unsupported username " + userId); + throw new CmsException("Unsupported username " + userId); } else { return base + '/' + JcrUtils.firstCharsToPath(userId, 2) + '/' + userId; }