コード例 #1
0
ファイル: SQLSession.java プロジェクト: JulianMoyano/nuxeo
 protected void checkNegativeAcl(ACP acp) {
   if (negativeAclAllowed) {
     return;
   }
   if (acp == null) {
     return;
   }
   for (ACL acl : acp.getACLs()) {
     if (acl.getName().equals(ACL.INHERITED_ACL)) {
       continue;
     }
     for (ACE ace : acl.getACEs()) {
       if (ace.isGranted()) {
         continue;
       }
       String permission = ace.getPermission();
       if (permission.equals(SecurityConstants.EVERYTHING)
           && ace.getUsername().equals(SecurityConstants.EVERYONE)) {
         continue;
       }
       // allow Write, as we're sure it doesn't include Read/Browse
       if (permission.equals(SecurityConstants.WRITE)) {
         continue;
       }
       throw new IllegalArgumentException("Negative ACL not allowed: " + ace);
     }
   }
 }
コード例 #2
0
ファイル: SQLSession.java プロジェクト: JulianMoyano/nuxeo
 protected static void addACLRow(List<ACLRow> aclrows, String name, ACE ace) {
   // XXX should prefix user/group
   String user = ace.getUsername();
   if (user == null) {
     // JCR implementation logs null and skips it
     return;
   }
   String group = null; // XXX all in user for now
   aclrows.add(
       new ACLRow(aclrows.size(), name, ace.isGranted(), ace.getPermission(), user, group));
 }
コード例 #3
0
 protected void resetPermissions(DocumentModel doc, String userName) {
   ACP acp = session.getACP(doc.getRef());
   ACL localACL = acp.getOrCreateACL(ACL.LOCAL_ACL);
   Iterator<ACE> localACLIt = localACL.iterator();
   while (localACLIt.hasNext()) {
     ACE ace = localACLIt.next();
     if (userName.equals(ace.getUsername())) {
       localACLIt.remove();
     }
   }
   session.setACP(doc.getRef(), acp, true);
   session.save();
 }
コード例 #4
0
 protected void resetPermissions(DocumentRef docRef, String userName) {
   ACP acp = session.getACP(docRef);
   ACL localACL = acp.getOrCreateACL(ACL.LOCAL_ACL);
   Iterator<ACE> localACLIt = localACL.iterator();
   while (localACLIt.hasNext()) {
     ACE ace = localACLIt.next();
     if (userName.equals(ace.getUsername())) {
       localACLIt.remove();
     }
   }
   session.setACP(docRef, acp, true);
   TransactionHelper.commitOrRollbackTransaction();
   TransactionHelper.startTransaction();
 }
コード例 #5
0
ファイル: SQLSession.java プロジェクト: JulianMoyano/nuxeo
 /** Key to distinguish ACEs */
 protected static String getACEkey(ACE ace) {
   // TODO separate user/group
   return ace.getUsername() + '|' + ace.getPermission();
 }