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

Reply via email to