jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Javier Arias <jar...@ujaen.es>
Subject Re: AW: New information about my last email...
Date Tue, 25 Jan 2011 09:02:56 GMT
I have called session.getRootNode(). Now when I call: 
Principal p = (Principal) ((User) authorizable).getPrincipal(); 
the program throws a NullPointerException. 

Does anybody know why?

Thanks. Regards.

El lun, 24-01-2011 a las 23:53 +0300, Yusuf Aaji escribió:
> Javier,
> 
> Use session.getRootNode() to apply the new policy on the whole repository.
> 
> BR,
> Yusuf
> 
> On Mon, Jan 24, 2011 at 7:40 PM, Javier Arias <jarias@ujaen.es> wrote:
> 
> > Hi, I am trying grant privileges to a user but I can not do it. The code
> > I am using is the following.
> >
> > Can anybody help me?
> >
> >
> >
> > Repository repository = new TransientRepository(new File(_rep));
> > Session session = repository.login(new
> >         SimpleCredentials("admin","admin");
> >
> > UserManager userManager = ((JackrabbitSession)
> >        session).getUserManager();
> >
> > AccessControlManager acm = session.getAccessControlManager();
> >
> > Node node = sessionAdmin.getRootNodeByIdentifier("admin");
> >
> >
> > Authorizable authorizable = userManager.getAuthorizable(user);
> > Principal p = (Principal) ((User) authorizable).getPrincipal();
> >
> > Privilege[] privileges = null;
> > AccessControlPolicyIterator it = (AccessControlPolicyIterator)
> >      acm.getApplicablePolicies(node.getPath());
> > if (it.hasNext())
> > {
> >  AccessControlPolicy policy = it.nextAccessControlPolicy();
> >  if (policy instanceof AccessControlList)
> >  {
> >  privileges[0] = acm.privilegeFromName(Privilege.JCR_MODIFY_PROPERTIES);
> >  privileges[1] = acm.privilegeFromName(Privilege.JCR_ADD_CHILD_NODES);
> >  privileges[2] = acm.privilegeFromName(Privilege.JCR_REMOVE_NODE);
> >  privileges[3] =
> >         acm.privilegeFromName(Privilege.JCR_REMOVE_CHILD_NODES);
> >  privileges[4] =
> >         acm.privilegeFromName(Privilege.JCR_NODE_TYPE_MANAGEMENT);
> >
> >
> > ((AccessControlList)policy).addAccessControlEntry(p,privileges);
> >                    acm.setPolicy(node.getPath(), policy);
> >  }
> > }
> >  session.save();
> >  session.logout();
> >
> >
> > Another problem is, in class AccessControlPolicy I must call
> > AccessControlPolicy.getApplicablePolicies() and setPolicy() passing as
> > parameter a node. I do not know how I should get this nodo.
> > Session.getRootNode()?
> > session.getNode("user")?
> > session.getNodeByIdentifier("user")?
> >
> > If I call getNode("user") or getNodeByIdentifier("user") the program
> > throws a Repository exception.
> >
> > Thank you in advance. Regards.
> >
> > El sáb, 22-01-2011 a las 18:44 +0100, Seidel. Robert escribió:
> > > Hi Javier,
> > >
> > > The jsr specification helped me a lot:
> > http://jcp.org/aboutJava/communityprocess/final/jsr283/index.html
> > >
> > > See page 225 and following.
> > >
> > > Regards, Robert
> > >
> > > -----Ursprüngliche Nachricht-----
> > > Von: Angela Schreiber [mailto:anchela@adobe.com]
> > > Gesendet: Freitag, 21. Januar 2011 15:10
> > > An: users@jackrabbit.apache.org
> > > Betreff: Re: New information about my last email...
> > >
> > > hi javier
> > >
> > > > About grant privileges an user, I am some lost. I understood first step
> > > > and second step but I do not know how follow. How can I get
> > > > AccessControlList? How grant privileges with User.getPrincipal?
> > >
> > > did you take a look a the JCR API related to access control?
> > > starting from Session.getAccessControlManager() you should find your
> > > way through, i guess.
> > >
> > > angela
> >
> >
> >
> >
> >




Mime
View raw message