From 673d555da09a1e03dc97058f178229d3b742908f Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 7 Sep 2016 10:20:39 +0000 Subject: [PATCH] Make home repository more generic. git-svn-id: https://svn.argeo.org/commons/trunk@9098 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../cms/internal/kernel/HomeRepository.java | 44 ++++++++++++++----- 1 file changed, 33 insertions(+), 11 deletions(-) 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 270a54214..5b7c7773d 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 @@ -4,7 +4,6 @@ import java.security.PrivilegedAction; import java.util.HashSet; import java.util.Set; -import javax.jcr.LoginException; import javax.jcr.Node; import javax.jcr.Repository; import javax.jcr.RepositoryException; @@ -62,17 +61,38 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar }); } + // @Override + // public Session login() throws LoginException, RepositoryException { + // Session session = super.login(); + // String username = session.getUserID(); + // if (username == null) + // return session; + // if (session.getUserID().equals(AuthConstants.ROLE_ANONYMOUS)) + // return session; + // + // if (checkedUsers.contains(username)) + // return session; + // Session adminSession = KernelUtils.openAdminSession(getRepository(), + // session.getWorkspace().getName()); + // try { + // syncJcr(adminSession, username); + // checkedUsers.add(username); + // } finally { + // JcrUtils.logoutQuietly(adminSession); + // } + // return session; + // } + @Override - public Session login() throws LoginException, RepositoryException { - Session session = super.login(); + protected void processNewSession(Session session) { String username = session.getUserID(); if (username == null) - return session; + return; if (session.getUserID().equals(AuthConstants.ROLE_ANONYMOUS)) - return session; + return; if (checkedUsers.contains(username)) - return session; + return; Session adminSession = KernelUtils.openAdminSession(getRepository(), session.getWorkspace().getName()); try { syncJcr(adminSession, username); @@ -80,7 +100,6 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar } finally { JcrUtils.logoutQuietly(adminSession); } - return session; } /* @@ -133,10 +152,13 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar userProfile = personBase.addNode(ArgeoNames.ARGEO_PROFILE); userProfile.addMixin(ArgeoTypes.ARGEO_USER_PROFILE); userProfile.setProperty(ArgeoNames.ARGEO_USER_ID, username); -// userProfile.setProperty(ArgeoNames.ARGEO_ENABLED, true); -// userProfile.setProperty(ArgeoNames.ARGEO_ACCOUNT_NON_EXPIRED, true); -// userProfile.setProperty(ArgeoNames.ARGEO_ACCOUNT_NON_LOCKED, true); -// userProfile.setProperty(ArgeoNames.ARGEO_CREDENTIALS_NON_EXPIRED, true); + // userProfile.setProperty(ArgeoNames.ARGEO_ENABLED, true); + // userProfile.setProperty(ArgeoNames.ARGEO_ACCOUNT_NON_EXPIRED, + // true); + // userProfile.setProperty(ArgeoNames.ARGEO_ACCOUNT_NON_LOCKED, + // true); + // userProfile.setProperty(ArgeoNames.ARGEO_CREDENTIALS_NON_EXPIRED, + // true); session.save(); JcrUtils.clearAccessControList(session, userProfile.getPath(), username); -- 2.30.2