svn commit: r597037 - in /lenya/trunk/src: java/org/apache/lenya/ac/ modules-core/ac/java/src/org/apache/lenya/ac/file/ modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ pubs/default/config/access-control/ pubs/default/config/acces...

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Wed Nov 21 03:15:43 2007
New Revision: 597037

URL: http://svn.apache.org/viewvc?rev=597037&view=rev
Log:
Introduced method Role.isAssignable(), added sitemanager role and group, updated usecase policies accordingly

Added:
    lenya/trunk/src/pubs/default/config/access-control/passwd/sitemanager.gml
    lenya/trunk/src/pubs/default/config/access-control/passwd/sitemanager.rml
Modified:
    lenya/trunk/src/java/org/apache/lenya/ac/Role.java
    lenya/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileRole.java
    lenya/trunk/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AccessControl.java
    lenya/trunk/src/pubs/default/config/access-control/passwd/admin.rml
    lenya/trunk/src/pubs/default/config/access-control/passwd/lenya.iml
    lenya/trunk/src/pubs/default/config/access-control/policies/archive/subtree-policy.acml
    lenya/trunk/src/pubs/default/config/access-control/policies/authoring/subtree-policy.acml
    lenya/trunk/src/pubs/default/config/access-control/policies/trash/subtree-policy.acml
    lenya/trunk/src/pubs/default/config/access-control/policies/webdav/subtree-policy.acml
    lenya/trunk/src/pubs/default/config/access-control/usecase-policies.xml

Modified: lenya/trunk/src/java/org/apache/lenya/ac/Role.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/ac/Role.java?rev=597037&r1=597036&r2=597037&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/ac/Role.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/ac/Role.java Wed Nov 21 03:15:43 2007
@@ -25,5 +25,10 @@
  * @version $Id$
  */
 public interface Role extends Item {
-    // do nothing
+    
+    /**
+     * @return if the role may be assigned to accreditables in policies.
+     */
+    boolean isAssignable();
+    
 }

Modified: lenya/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileRole.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileRole.java?rev=597037&r1=597036&r2=597037&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileRole.java (original)
+++ lenya/trunk/src/modules-core/ac/java/src/org/apache/lenya/ac/file/FileRole.java Wed Nov 21 03:15:43 2007
@@ -37,6 +37,8 @@
  */
 public class FileRole extends AbstractRole implements Item {
 
+    protected static final String ATTR_ASSIGNABLE = "assignable";
+
     /**
      * Creates a new file role.
      * @param itemManager The item manager.
@@ -69,6 +71,7 @@
      */
     public void configure(Configuration config) throws ConfigurationException {
         new ItemConfiguration().configure(this, config);
+        this.isAssignable = config.getAttributeAsBoolean(ATTR_ASSIGNABLE, true);
     }
 
     /**
@@ -99,6 +102,7 @@
     }
 
     private File configurationDirectory;
+    private boolean isAssignable;
 
     /**
      * Returns the configuration directory.
@@ -110,5 +114,9 @@
 
     protected void setConfigurationDirectory(File file) {
         this.configurationDirectory = file;
+    }
+
+    public boolean isAssignable() {
+        return this.isAssignable;
     }
 }

Modified: lenya/trunk/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AccessControl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AccessControl.java?rev=597037&r1=597036&r2=597037&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AccessControl.java (original)
+++ lenya/trunk/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AccessControl.java Wed Nov 21 03:15:43 2007
@@ -21,6 +21,8 @@
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
 
 import org.apache.cocoon.ProcessingException;
 import org.apache.lenya.cms.publication.Document;
@@ -33,7 +35,6 @@
 import org.apache.lenya.ac.AccreditableManager;
 import org.apache.lenya.ac.Group;
 import org.apache.lenya.ac.IPRange;
-import org.apache.lenya.ac.Item;
 import org.apache.lenya.ac.Policy;
 import org.apache.lenya.ac.Role;
 import org.apache.lenya.ac.User;
@@ -149,15 +150,16 @@
 
             Role[] roles = getRoleManager().getRoles();
             String visitorRole = "";
-            String[] roleIds = new String[roles.length];
+            Set roleIds = new TreeSet();
             for (int i = 0; i < roles.length; i++) {
-                roleIds[i] = roles[i].getId();
-                if (roles[i].getId().equals("visit")) {
-                    visitorRole = roles[i].getId();
+                if (roles[i].isAssignable()) {
+                    roleIds.add(roles[i].getId());
+                    if (roles[i].getId().equals("visit")) {
+                        visitorRole = roles[i].getId();
+                    }
                 }
             }
-            Arrays.sort(roleIds);
-            setParameter("roles", roleIds);
+            setParameter("roles", roleIds.toArray(new String[roleIds.size()]));
             setParameter("visitorRole", visitorRole);
 
             setParameter(SUB_CREDENTIALS, getSubtreeCredentials());

Modified: lenya/trunk/src/pubs/default/config/access-control/passwd/admin.rml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/default/config/access-control/passwd/admin.rml?rev=597037&r1=597036&r2=597037&view=diff
==============================================================================
--- lenya/trunk/src/pubs/default/config/access-control/passwd/admin.rml (original)
+++ lenya/trunk/src/pubs/default/config/access-control/passwd/admin.rml Wed Nov 21 03:15:43 2007
@@ -18,4 +18,4 @@
 
 <!-- $Id$ -->
 
-<role class="org.apache.lenya.ac.file.FileRole" id="admin"/>
\ No newline at end of file
+<role class="org.apache.lenya.ac.file.FileRole" id="admin" assignable="false"/>
\ No newline at end of file

Modified: lenya/trunk/src/pubs/default/config/access-control/passwd/lenya.iml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/default/config/access-control/passwd/lenya.iml?rev=597037&r1=597036&r2=597037&view=diff
==============================================================================
--- lenya/trunk/src/pubs/default/config/access-control/passwd/lenya.iml (original)
+++ lenya/trunk/src/pubs/default/config/access-control/passwd/lenya.iml Wed Nov 21 03:15:43 2007
@@ -26,5 +26,6 @@
   <groups>
     <group>editor</group>
     <group>admin</group>
+    <group>sitemanager</group>
   </groups>
 </identity>

Added: lenya/trunk/src/pubs/default/config/access-control/passwd/sitemanager.gml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/default/config/access-control/passwd/sitemanager.gml?rev=597037&view=auto
==============================================================================
--- lenya/trunk/src/pubs/default/config/access-control/passwd/sitemanager.gml (added)
+++ lenya/trunk/src/pubs/default/config/access-control/passwd/sitemanager.gml Wed Nov 21 03:15:43 2007
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!-- $Id: editor.gml 473861 2006-11-12 03:51:14Z gregor $ -->
+
+<group class="org.apache.lenya.ac.file.FileGroup" id="sitemanager"/>
\ No newline at end of file

Added: lenya/trunk/src/pubs/default/config/access-control/passwd/sitemanager.rml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/default/config/access-control/passwd/sitemanager.rml?rev=597037&view=auto
==============================================================================
--- lenya/trunk/src/pubs/default/config/access-control/passwd/sitemanager.rml (added)
+++ lenya/trunk/src/pubs/default/config/access-control/passwd/sitemanager.rml Wed Nov 21 03:15:43 2007
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!-- $Id: admin.rml 473861 2006-11-12 03:51:14Z gregor $ -->
+
+<role class="org.apache.lenya.ac.file.FileRole" id="sitemanager"/>
\ No newline at end of file

Modified: lenya/trunk/src/pubs/default/config/access-control/policies/archive/subtree-policy.acml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/default/config/access-control/policies/archive/subtree-policy.acml?rev=597037&r1=597036&r2=597037&view=diff
==============================================================================
--- lenya/trunk/src/pubs/default/config/access-control/policies/archive/subtree-policy.acml (original)
+++ lenya/trunk/src/pubs/default/config/access-control/policies/archive/subtree-policy.acml Wed Nov 21 03:15:43 2007
@@ -29,7 +29,11 @@
   </group>
 
   <group id="admin">
-    <role id="admin" method="grant" />
+    <role id="admin"  method="grant"/>
+  </group>
+ 
+  <group id="sitemanager">
+    <role id="sitemanager" method="grant" />
   </group>
 
   <!-- the "session" role grants access to login, logout and aboutLenya -->

Modified: lenya/trunk/src/pubs/default/config/access-control/policies/authoring/subtree-policy.acml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/default/config/access-control/policies/authoring/subtree-policy.acml?rev=597037&r1=597036&r2=597037&view=diff
==============================================================================
--- lenya/trunk/src/pubs/default/config/access-control/policies/authoring/subtree-policy.acml (original)
+++ lenya/trunk/src/pubs/default/config/access-control/policies/authoring/subtree-policy.acml Wed Nov 21 03:15:43 2007
@@ -32,6 +32,10 @@
     <role id="admin"  method="grant"/>
   </group>
  
+  <group id="sitemanager">
+    <role id="sitemanager" method="grant"/>
+  </group>
+ 
   <!-- the "session" role grants access to login, logout and aboutLenya -->
   <world>
     <role id="session" method="grant"/>

Modified: lenya/trunk/src/pubs/default/config/access-control/policies/trash/subtree-policy.acml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/default/config/access-control/policies/trash/subtree-policy.acml?rev=597037&r1=597036&r2=597037&view=diff
==============================================================================
--- lenya/trunk/src/pubs/default/config/access-control/policies/trash/subtree-policy.acml (original)
+++ lenya/trunk/src/pubs/default/config/access-control/policies/trash/subtree-policy.acml Wed Nov 21 03:15:43 2007
@@ -31,6 +31,10 @@
   <group id="admin">
     <role id="admin" method="grant"/>
   </group>
+  
+  <group id="sitemanager">
+    <role id="sitemanager"  method="grant"/>
+  </group>
 
   <!-- the "session" role grants access to login, logout and aboutLenya -->
   <world>

Modified: lenya/trunk/src/pubs/default/config/access-control/policies/webdav/subtree-policy.acml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/default/config/access-control/policies/webdav/subtree-policy.acml?rev=597037&r1=597036&r2=597037&view=diff
==============================================================================
--- lenya/trunk/src/pubs/default/config/access-control/policies/webdav/subtree-policy.acml (original)
+++ lenya/trunk/src/pubs/default/config/access-control/policies/webdav/subtree-policy.acml Wed Nov 21 03:15:43 2007
@@ -32,4 +32,8 @@
     <role id="admin"  method="grant"/>
   </group>
 
+  <group id="sitemanager">
+    <role id="sitemanager"  method="grant"/>
+  </group>
+
 </policy> 

Modified: lenya/trunk/src/pubs/default/config/access-control/usecase-policies.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/default/config/access-control/usecase-policies.xml?rev=597037&r1=597036&r2=597037&view=diff
==============================================================================
--- lenya/trunk/src/pubs/default/config/access-control/usecase-policies.xml (original)
+++ lenya/trunk/src/pubs/default/config/access-control/usecase-policies.xml Wed Nov 21 03:15:43 2007
@@ -25,6 +25,7 @@
     <role id="visit" method="grant"/>
     <role id="admin" method="grant"/>
     <role id="edit" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="review" method="grant"/>
   </usecase>
   <usecase id="ac.logout">
@@ -38,174 +39,174 @@
   </usecase>
 
   <usecase id="bxe.edit">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="bxe.close">
-    <role id="admin"/>
+    <role id="sitemanager"/>
     <role id="edit"/>
   </usecase>  
   <usecase id="cforms.edit">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="fckeditor.edit">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="linkcheck.getLinks">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="lucene.externalOpensearch">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="lucene.index">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="lucene.indexSite">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="lucene.opensearch">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="lucene.search">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
     <role id="visit" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.archive">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.changeLabel">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.changeNodeID">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.changeVisibility">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.copy">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.create">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.createLanguage">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.cut">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.delete">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.deleteLanguage">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.paste">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.restore">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="sitemanagement.rollback">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>  
   <usecase id="sitemanagement.forceCheckIn">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>  
   <usecase id="tab.acArchive">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="tab.acAuthoring">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="tab.acLive">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="tab.acTrash">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="tab.assets">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="tab.meta">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="tab.overview">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
     <role id="review" method="grant"/>
     <role id="visit" method="grant"/>
   </usecase>
   <usecase id="tab.revisions">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="tab.scheduler">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="tab.workflow">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="opendocument.create">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="opendocument.upload">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="sitetree.nudge">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="contactForm.sendMessage">
     <role id="visit" method="grant"/>
   </usecase>
   <usecase id="usecasedocument.create">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="webdav.delete">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="webdav.filePropfind">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="webdav.mkcol">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="webdav.propfind">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="webdav.put">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="admin.usecases">
@@ -225,6 +226,7 @@
     <role id="edit" method="grant"/>
     <role id="review" method="grant"/>
     <role id="visit" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="admin.changePasswordAdmin">
     <role id="admin" method="grant"/>
@@ -287,84 +289,79 @@
     <role id="admin" method="grant"/>
   </usecase>
   <usecase id="editors.forms">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="editors.oneform">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="editors.publicationEdit">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="templating.createPublicationFromTemplate">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="workflow.delete">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
   </usecase>
   <usecase id="workflow.publish">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="review" method="grant"/>
   </usecase>
   <usecase id="workflow.deactivate">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="review" method="grant"/>
   </usecase>
   <usecase id="workflow.reject">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="review" method="grant"/>
   </usecase>
   <usecase id="workflow.submit">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="workflow.multiWorkflow">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="review" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="workflow.multiWorkflowInvoke">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="review" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="kupu.edit">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="resource.upload">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
-    <role id="review" method="grant"/>
   </usecase>
   <usecase id="resource.create">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
-    <role id="review" method="grant"/>
   </usecase>
   <usecase id="entry.create">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
-    <role id="review" method="grant"/>
   </usecase>
   <usecase id="export.import">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
-    <role id="review" method="grant"/>
   </usecase>
   <usecase id="export.importExampleContent">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
-    <role id="review" method="grant"/>
   </usecase>
   <usecase id="notification.inbox">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
     <role id="review" method="grant"/>
   </usecase>
   <usecase id="notification.sendMessage">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
     <role id="review" method="grant"/>
   </usecase>
@@ -378,31 +375,31 @@
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="editors.insertLink">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="editors.insertImage">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="editors.insertAsset">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="editors.createResource">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="tinymce.edit">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
   <usecase id="fckeditor.edit">
-    <role id="admin" method="grant"/>
+    <role id="sitemanager" method="grant"/>
     <role id="edit" method="grant"/>
   </usecase>
 </usecases>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.