On 02/11/2010 07:41 PM, Jean-Vincent Drean wrote:
> Do we have an alternative ?

Not yet. But it's something to keep in mind for the refactoring of the 
rights management.

> On Thu, Feb 11, 2010 at 6:09 PM, Sergiu Dumitriu<[email protected]>  wrote:
>> On 02/11/2010 05:49 PM, vmassol (SVN) wrote:
>>> Author: vmassol
>>> Date: 2010-02-11 17:49:55 +0100 (Thu, 11 Feb 2010)
>>> New Revision: 26953
>>>
>>> Modified:
>>>      platform/web/trunk/standard/src/main/webapp/templates/xwikivars.vm
>>> Log:
>>> Improved doc
>>>
>>> Modified: platform/web/trunk/standard/src/main/webapp/templates/xwikivars.vm
>>> ===================================================================
>>> --- platform/web/trunk/standard/src/main/webapp/templates/xwikivars.vm      
>>>   2010-02-11 16:07:23 UTC (rev 26952)
>>> +++ platform/web/trunk/standard/src/main/webapp/templates/xwikivars.vm      
>>>   2010-02-11 16:49:55 UTC (rev 26953)
>>> @@ -3,7 +3,9 @@
>>>    #set($isSuperAdmin = ($context.user == 'XWiki.superadmin'))
>>>    #set($hasEdit = $xwiki.hasAccessLevel("edit"))
>>>    #set($hasAdmin = $xwiki.hasAccessLevel("admin"))
>>
>> This is so bad for the performance... Fills the cache with unneeded
>> entries, makes two unneeded queries to the database (the random document
>> plus the WebPreferences), and goes through the complex full rights check
>> each time.
>>
>>> +## Note: In order to know if the user has the right to create a space we 
>>> compute a space name that doesn't exist and check edit rights on that space
>>>    #set($hasCreateSpace = $xwiki.hasAccessLevel("edit", 
>>> "${doc.space}${mathtool.random(0, 
>>> 999)}.DocumentReservedForInternalXWikiUsage"))
>>> +## Note: In order to know if the user has the right to create a page we 
>>> compute a page name that doesn't exist and check edit rights on that page
>>>    #set($hasCreatePage = $xwiki.hasAccessLevel("edit", 
>>> "${doc.space}.DocumentReservedForInternalXWikiUsage${mathtool.random(0, 
>>> 999)}"))
>>>    #set($hasGlobalAdmin = $xwiki.hasAccessLevel("admin", $context.user, 
>>> "XWiki.XWikiPreferences"))
>>>    #set($hasSpaceAdmin = $xwiki.hasAccessLevel("admin", $context.user, 
>>> "${doc.space}.WebPreferences"))
-- 
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to