Since all PR checks are run against the document xwiki:XWiki.XWikiPreferences
you would need to do:
$xwiki.getDocument('xwiki:XWiki.XWikiPreferences').hasAccessLevel('programming',
$doc.getContentAuthor())
Caleb
On 08/31/2011 07:22 AM, Marius Dumitru Florea wrote:
> On Wed, Aug 31, 2011 at 1:45 PM, Jerome Velociter <[email protected]>
> wrote:
>> Hi Marius,
>>
>> Would hasAccessLevel("programming", "Some.Doc") work ?
>
> Nop. I tried:
>
> $someDoc.hasAccessLevel('programming')
>
> but it tells me if the current user can save with programming rights
> the specified document. That's not what I need. Programming rights
> check on a document shouldn't depend on the current user, but on the
> last author.
>
> I could use:
>
> $someDoc.hasAccessLevel('programming', $someDoc.contentAuthor)
>
> but it's not enough because
> XWikiRightsServiceImpl#hasProgrammingRights(XWikiDocument,
> XWikiContext) does a few checks before making the above call. For
> instance it checks if the content author is from the main wiki. I
> don't want to duplicate this code..
>
> Thanks,
> Marius
>
>>
>> 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?
>>>
>>> Thanks,
>>> Marius
>>> _______________________________________________
>>> devs mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>
>>
>>
>>
>> --
>> Jerome Velociter
>> Winesquare
>> http://www.winesquare.net/
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs