On Wed, Aug 31, 2011 at 3:13 PM, Marius Dumitru Florea <[email protected]> wrote:
On Wed, Aug 31, 2011 at 3:00 PM, Thomas Mortagne <[email protected]> wrote:
On Wed, Aug 31, 2011 at 11:45 AM, Marius Dumitru Florea <[email protected]> wrote:
Hi devs,
I tried to use:
$someDoc.hasProgrammingRights()
but unfortunately this method checks the current/context document, not the one on which it is called. The code is in com.xpn.xwiki.api.Api:
/** * Check if the current document has programming rights, meaning that it was last saved by a user with the * programming right globally granted. * * @return <tt>true</tt> if the current document has the Programming right or <tt>false</tt> otherwise. */ public boolean hasProgrammingRights() { com.xpn.xwiki.XWiki xwiki = this.context.getWiki(); return xwiki.getRightService().hasProgrammingRights(this.context); }
So how do you check if a specific document has programming rights? AFAICS I need to either access the rights service or change the context document, but both require programming rights.. How can I check programming rights without needing them?
$xwiki.hasAccessLevel("programming", $mydoc.contentAuthor, "anydocumentitsnotusedanyway")
should work well.
What about the rest of the tests done in XWikiRightsServiceImpl#hasProgrammingRights(XWikiDocument, XWikiContext) ? hasAccessLevel('programming', ..) is called only at the end. I suppose they are needed, otherwise hasProgrammingRights would have just called hasAccessLevel no?
If this method does not work for what you need then it's a bug to be fixed.
Thanks, Marius
Thanks, Marius _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne