03-06-2009 10:34 AM
   <permissionSet type="st:site" expose="selected">
      <permissionGroup name="SiteManager" allowFullControl="true" expose="true" />
      <permissionGroup name="SiteCollaborator" allowFullControl="false" expose="true">
         <includePermissionGroup permissionGroup="Collaborator" type="cm:cmobject" />
      </permissionGroup>
      <permissionGroup name="SiteContributor" allowFullControl="false" expose="true">
         <includePermissionGroup permissionGroup="Contributor" type="cm:cmobject" />
      </permissionGroup>
      <permissionGroup name="SiteConsumer" allowFullControl="false" expose="true">
         <includePermissionGroup permissionGroup="Consumer" type="cm:cmobject" />
         <includePermissionGroup permissionGroup="ForumContributor" type="fm:forum" />
      </permissionGroup>
   </permissionSet>
   <permissionSet type="fm:forum" expose="selected">
      <permissionGroup name="ForumContributor" allowFullControl="false" expose="true">
         <includePermissionGroup permissionGroup="Contributor" type="cm:cmobject" />
      </permissionGroup>
   </permissionSet>
03-06-2009 12:22 PM
03-06-2009 04:03 PM
You know that if you create the site as public, anyone can just start a discussion and access the site functionality without joining the site first.
 
					
				
		
03-17-2009 03:32 PM
03-27-2009 12:14 PM
 ost type (create permission) but I suspect you'd also have to enable create children permission on fm:topic too.
ost type (create permission) but I suspect you'd also have to enable create children permission on fm:topic too. 
					
				
		
04-24-2009 11:05 AM
        <permissionGroup name="Perm" allowFullControl="false" expose="false">
            <includePermissionGroup permissionGroup="Read" type="sys:base" />
        </permissionGroup>
        
        <permissionGroup name="Perm_ext" allowFullControl="false" expose="false">
            <includePermissionGroup permissionGroup="Write" type="sys:base" />
        </permissionGroup>
    <globalPermission permission="Perm_ext" authority="ROLE_EXT" />
package org.alfresco.module.mymodule;
import * /* you have to do it yourself */
public class GenericTypeBasedDynamicAuthority implements DynamicAuthority {
   private NodeService nodeService;
   private PermissionsDaoComponent permissionsDaoComponent;
   private AuthorityService authorityService;
   
   // Deduced values
   private PermissionReference basePermission;
   private List<QName> applicableTypes = new ArrayList<QName>();
   private String authority;
      
   @Override
   public String getAuthority() {
      return authority;
   }
   @Override
   public boolean hasAuthority(NodeRef nodeRef, String userName) {
                AccessStatus state = hasBasePermission(nodeRef, userName);
      return (applicableTypes.contains(nodeService.getType(nodeRef)) && (state == AccessStatus.ALLOWED));            
   }
   @Override
   public Set<PermissionReference> requiredFor() {
      return null;
   }
   public void setNodeService(NodeService nodeService) {
      this.nodeService = nodeService;
   }
   public NodeService getNodeService() {
      return nodeService;
   }
   public void setPermissionsDaoComponent(PermissionsDaoComponent permissionsDaoComponent) {
      this.permissionsDaoComponent = permissionsDaoComponent;
   }
   public PermissionsDaoComponent getPermissionsDaoComponent() {
      return permissionsDaoComponent;
   }
   public void setAuthorityService(AuthorityService authorityService) {
      this.authorityService = authorityService;
   }
   public AuthorityService getAuthorityService() {
      return authorityService;
   }
   public void setAuthority(String authority) {
      this.authority = authority;
   }
   public void setTypes(List<String> types) {
      this.applicableTypes.clear();
      for (String type : types) {
         this.applicableTypes.add(QName.createQName(MyModel.NAMESPACE, type));
      }
   }
   public List<String> getTypes() {
      List<String> result = new ArrayList<String>();
      for (QName qname : applicableTypes) {
         result.add(qname.getLocalName());
      }
      return result;
   }
   public void setBaseRole(String role) {
      this.basePermission = SimplePermissionReference.getPermissionReference(ContentModel.TYPE_CMOBJECT, role);
   }
   public String getBaseRole() {
      return basePermission.getName();
   }
   private AccessStatus hasBasePermission(NodeRef nodeRef, String userName) {
      NodePermissionEntry nodePermissions = permissionsDaoComponent.getPermissions(nodeRef);
      List<? extends PermissionEntry> permEntries = nodePermissions.getPermissionEntries();
      
       Set<String> auths = getAuthorityService().getAuthorities();
       auths.add(userName);
      for (PermissionEntry permEntry : permEntries) {
         if (permEntry.getPermissionReference().equals(basePermission) &&
               auths.contains(permEntry.getAuthority()) &&
               permEntry.getAccessStatus() == AccessStatus.ALLOWED) {
            return AccessStatus.ALLOWED;
         }
      }
      
      return AccessStatus.DENIED;
   }
}
<bean id="permissionServiceImpl" class="org.alfresco.repo.security.permissions.impl.PermissionServiceImpl">
        <property name="nodeService">
            <ref bean="mtAwareNodeService" />
        </property>
        <property name="tenantService">
            <ref bean="tenantService"/>
        </property>
        <property name="dictionaryService">
            <ref bean="dictionaryService" />
        </property>
        <property name="permissionsDaoComponent">
            <ref bean="permissionsDaoComponent" />
        </property>
        <property name="modelDAO">
            <ref bean="permissionsModelDAO" />
        </property>
        <property name="authorityService">
            <ref bean="authorityService" />
        </property>
        <property name="accessCache">
            <ref bean="permissionsAccessCache" />
        </property>
        <property name="policyComponent">
            <ref bean="policyComponent" />
        </property>
        <property name="aclDaoComponent">
            <ref bean="aclDaoComponent" />
        </property>
        <property name="dynamicAuthorities">
            <list>
                <ref bean="ownerDynamicAuthority" />
                <ref bean="lockOwnerDynamicAuthority" />
                <!– dynamic authorities for roles on types –>
                <ref bean="myDynamicAuthority" />
             
            </list>
        </property>
    </bean> 
    <bean id="myDynamicAuthority" class="org.alfresco.module.mymodule.GenericTypeBasedDynamicAuthority">
        <property name="nodeService">
            <ref bean="nodeService"/>
        </property>
        <property name="permissionsDaoComponent">
            <ref bean="permissionsDaoComponent" />
        </property>
        <property name="authorityService">
            <ref bean="authorityService" />
        </property>
        <property name="authority">
            <value>ROLE_EXT</value>
        </property>
        <property name="baseRole">
            <value>Perm</value>
        </property>
        <property name="types">
            <list>
                <value>yourType</value>
            </list>
        </property>
    </bean>
 
					
				
		
05-13-2009 04:40 AM
<permissionGroup name="SolaScrittura" allowFullControl="false" expose="true" >
          <includePermissionGroup permissionGroup="Read" type="sys:base" />
          <includePermissionGroup permissionGroup="CreateChildren" type="sys:base" />
      </permissionGroup><!– ================================================ –>
   <!– Permissions available to all content and folders –>
   <!– ================================================ –><!– =============================== –>
   <!– Permissions specific to content –>
   <!– =============================== –><permissionSet type="cm:content" expose="selected">
      <!– Content specific roles.                                                       –>
      
      <permissionGroup name="Coordinator" extends="true" expose="true"/>
      <permissionGroup name="Collaborator" extends="true" expose="true"/>
      <permissionGroup name="Contributor" extends="true" expose="true"/>
      <permissionGroup name="Editor" extends="true" expose="true"/>
      <permissionGroup name="Consumer" extends="true" expose="true"/>
      <permissionGroup name="RecordAdministrator" extends="true" expose="false"/>
      <permissionGroup name="SolaScrittura" extends="true" expose="true"/>
      
   </permissionSet>
    
    
    <permissionSet type="cm:folder" expose="selected">
      <!– Content folder specific roles.                                                       –>
      
      <permissionGroup name="Coordinator" extends="true" expose="true"/>
      <permissionGroup name="Collaborator" extends="true" expose="true"/>
      <permissionGroup name="Contributor" extends="true" expose="true"/>
      <permissionGroup name="Editor" extends="true" expose="true"/>
      <permissionGroup name="Consumer" extends="true" expose="true"/>
      <permissionGroup name="RecordAdministrator" extends="true" expose="false"/>
      <permissionGroup name="SolaScrittura" extends="true" expose="true"/>
      
   </permissionSet> 
					
				
		
08-09-2012 03:24 PM
08-10-2012 03:37 AM
 
					
				
				
			
		
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.