Hi,
This looks good.. I'm wondering wether the API should be in
XWikiGroupService or if we should add a new XWikiUserService api.
Concerning retrieving inherited rights we could have this API
Map getInheritedRight(String SpaceOrPage, List rights ("view", "edit",
"comment", ..))
It would return a Map of Lists { "view" : { "XWiki.XWikiAllGroup",
"XWiki.XWikiGuest" }, "edit": {"XWiki.AdminGrgoup",
"XWiki.LudovicDubost" } }
If the list is empty at the parent level it will need to go at the upper
parent level (until it hits the global level).
Ludovic
Evelyne24 a écrit :
Hello,
In order to implement the Rights Management desired improvements, we concluded that there
is need to write an api to help retrieve:
- the local / global users
- the local / global groups
- the inherited rights for users / groups
So after I spoke with Ludovic and Thomas, here is the list of things to be implemented in
this api:
XWikiUser
============
We have:
-> user (string)
-> main (boolean)
--> setUser, getUser
--> isMain, setMain
----------------------------
We will need to do:
--> add methods:
* getAllActiveUsers [ will read xwiki settings to know what to return, global or local
active users; Thomas and I understood that 'active' user means the user after
being registered and confirmed the registration through email maybe, following a link to
activate or something like this ]
* getAllGlobalUsers
* getAllLocalUsers
* getAllUsers
* getMatchingActiveUsers(string MatchText, XWikiContext)
* a method to get details for a user, other than the ones returned by getAllUsers (which
will return something like Xwiki.LudovicDubost); we might need firstname, lastname,
pagename etc. maybe we can use a parameter for the getAllUsers method, called
'withDetails'(boolean)
XWikiGroupService (interface)
=============================
We have
--> listGroupsForUser
--> addUserToGroup
--> listMemberForGroup
--> listAllGroups
-------------------------
We will need to do:
--> add methods:
* getAllActiveGroups
* getAllGlobalGroups
* getAllLocalGroups [ this is currently done by 'listAllGroups' ]
* listMatchingActiveGroups(string MatchText, XWikiContext) [ this will help me for the
ajax-suggest feature; will return the groups with the name matching a certain string ]
XWikiRightService (interface)
==============================
We have:
--> checkAccess
--> hasAccessLevel
--> hasProgrammingRights (2 methods)
--> hasAdminRights
--> listAllLevels
-------------------------------
We will need to do:
--> add methods:
* to find inherited rights
* and maybe other things, I'm not very sure yet
I hope I understood right. Thomas will try to draw some schemes and I'll clarify some
of the questions that are left, then.
Ps. I posted this mail yesterday but only today I found out that devs list moved to
xwiki.org. Sorry about the delay.
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
--
Ludovic Dubost
Blog:
http://www.ludovic.org/blog/
XWiki:
http://www.xwiki.com
Skype: ldubost GTalk: ldubost
AIM: nvludo Yahoo: ludovic