Hi all,
I've solved the problem with an extension-point:
<?xml version="1.0"?>
<component name="es.yerbabuena.easyReader.securityPolicyContrib">
<extension target="org.nuxeo.ecm.core.security.SecurityService"
point="policies">
<policy name="UTEPolicy"
class="es.yerbabuena.uteMetro.policies.UteMetroPolicy" order="0" />
</extension>
</component>
And with the java code:
public Access checkPermission(Document doc, ACP mergedACP, Principal
principal,
public class UteMetroPolicy extends AbstractSecurityPolicy {
public Access checkPermission(Document doc, ACP mergedACP, Principal
principal,
String permission, String[] resolvedPermissions,
String[] additionalPrincipals) {
Access access = Access.UNKNOWN;
try {
List<String> permissions = new ArrayList<String>();
for (int i = 0; i < resolvedPermissions.length; i++) {
permissions.add(resolvedPermissions[i]);
}
ACL acl = mergedACP.getOrCreateACL(ACL.LOCAL_ACL);
ACE [] ace = acl.getACEs();
for (int i=0; i<ace.length; i++){
if(ace[i].isDenied() &&
ace[i].getUsername().equals(principal.getName())
&&
permissions.contains(ace[i].getPermission())){
access = Access.DENY;
}
if(ace[i].isGranted() &&
ace[i].getUsername().equals(principal.getName())
&&
permissions.contains(ace[i].getPermission())){
access = Access.GRANT;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return access;
}
}
Regards
--
Posted by "juanluishidalgo" at Nuxeo Discussions <http://nuxeo.org/discussions>
View the complete thread:
<http://www.nuxeo.org/discussions/thread.jspa?threadID=3958#12123>
_______________________________________________
ECM mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm
To unsubscribe, go to http://lists.nuxeo.com/mailman/options/ecm