On Wed, Aug 31, 2011 at 4:34 PM, Thomas Mortagne <[email protected]> wrote: > On Wed, Aug 31, 2011 at 3:21 PM, Denis Gervalle <[email protected]> wrote: >> On Wed, Aug 31, 2011 at 15:13, 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? >>> >> >> Thomas has proposed the most correct answer but I see one potential issue if >> $mydoc.contentAuthor does not return a fully qualified username (including >> the database), so you may need to at least proceed to the addition of the >> database of the document to the content author name if it does not contains >> a ':' > > That should not be needed if there is no bug.
Unless the document is not in the current wiki indeed. We really neede reference based right apis... > >> >> Denis >> >> >>> 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 >>> >> >> >> >> -- >> Denis Gervalle >> SOFTEC sa - CEO >> eGuilde sarl - CTO >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs >> > > > > -- > Thomas Mortagne > -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

