import javax.jcr.Session;
import javax.jcr.nodetype.NodeType;
import javax.jcr.security.Privilege;
-import javax.naming.ldap.LdapName;
import javax.security.auth.x500.X500Principal;
import org.argeo.api.cms.CmsConstants;
import org.argeo.api.cms.CmsSession;
import org.argeo.app.api.EntityType;
-import org.argeo.app.api.SuiteRole;
-import org.argeo.jackrabbit.security.JackrabbitSecurityUtils;
+import org.argeo.cms.auth.RoleNameUtils;
import org.argeo.jcr.JcrException;
import org.argeo.jcr.JcrUtils;
import org.argeo.util.naming.LdapAttrs;
/** Utilities around the Argeo Suite APIs. */
public class SuiteUtils {
-
- public static String getUserNodePath(LdapName userDn) {
- String uid = userDn.getRdn(userDn.size() - 1).getValue().toString();
+ @Deprecated
+ public static String getUserNodePath(String userDn) {
+ String uid = RoleNameUtils.getLastRdnValue(userDn);
return EntityType.user.basePath() + '/' + uid;
}
- public static Node getOrCreateUserNode(Session adminSession, LdapName userDn) {
+ @Deprecated
+ private static Node getOrCreateUserNode(Session adminSession, String userDn) {
try {
Node usersBase = adminSession.getNode(EntityType.user.basePath());
- String uid = userDn.getRdn(userDn.size() - 1).getValue().toString();
+ String uid = RoleNameUtils.getLastRdnValue(userDn);
Node userNode;
if (!usersBase.hasNode(uid)) {
userNode = usersBase.addNode(uid, NodeType.NT_UNSTRUCTURED);
userNode.setProperty(LdapAttrs.distinguishedName.property(), userDn.toString());
userNode.setProperty(LdapAttrs.uid.property(), uid);
adminSession.save();
- JackrabbitSecurityUtils.denyPrivilege(adminSession, userNode.getPath(), SuiteRole.coworker.dn(),
- Privilege.JCR_READ);
+// JackrabbitSecurityUtils.denyPrivilege(adminSession, userNode.getPath(), SuiteRole.coworker.dn(),
+// Privilege.JCR_READ);
JcrUtils.addPrivilege(adminSession, userNode.getPath(), new X500Principal(userDn.toString()).getName(),
Privilege.JCR_READ);
JcrUtils.addPrivilege(adminSession, userNode.getPath(), CmsConstants.ROLE_USER_ADMIN,
}
}
+ @Deprecated
public static Node getCmsSessionNode(Session session, CmsSession cmsSession) {
try {
return session.getNode(getUserNodePath(cmsSession.getUserDn()) + '/' + cmsSession.getUuid().toString());
}
}
+ @Deprecated
public static Node getOrCreateCmsSessionNode(Session adminSession, CmsSession cmsSession) {
try {
- LdapName userDn = cmsSession.getUserDn();
+ String userDn = cmsSession.getUserDn();
// String uid = userDn.get(userDn.size() - 1);
Node userNode = getOrCreateUserNode(adminSession, userDn);
// if (!usersBase.hasNode(uid)) {