Skip to content

Instantly share code, notes, and snippets.

@kylefernandadams
Created July 14, 2014 14:57
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kylefernandadams/7becad527a466b591be6 to your computer and use it in GitHub Desktop.
Save kylefernandadams/7becad527a466b591be6 to your computer and use it in GitHub Desktop.
Alfresco - Simple Dynamic Authority
package org.alfresco.extension;
import java.util.Set;
import org.alfresco.repo.security.permissions.DynamicAuthority;
import org.alfresco.repo.security.permissions.PermissionReference;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.QName;
public class SimpleDynamicAuthority implements DynamicAuthority {
private static final String AUTHORITY_NAME = "SIMPLE_DYNAMIC_AUTHORITY";
private static final String FORBIDDEN_ITEM_NAME = "Private item";
private static final String FORBIDDEN_FOR_USERNAME = "bart.simpson";
private NodeService nodeService;
private boolean doGrantAuthority = true
public boolean hasAuthority(NodeRef nodeRef, String username) {
String name = (String) nodeService.getProperty(nodeRef, QName.createQName("{http://www.alfresco.org/model/content/1.0}name"));
if(name.startsWith(FORBIDDEN_ITEM_NAME) && FORBIDDEN_FOR_USERNAME.equals(username)){
doGrantAuthority = false;
}
return doGrantAuthority;
}
public String getAuthority() {
return AUTHORITY_NAME;
}
public Set<PermissionReference> requiredFor() {
return null; // required for all checks
}
public void setNodeService(NodeService nodeService) {
this.nodeService = nodeService;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment