Oh, forgot this one:

system::migrator(R80000XWIKI12345)
system::extension-upgrade(org.xwiki.contrib:cool-app:1.2.3)
system::password-reset(ip:1.2.3.4)

On 01/17/2017 02:14 PM, Sergiu Dumitriu wrote:
> I'd like something more complex, and more flexible at the same time.
> Instead of having simple user names, I'd like to see a more powerful
> "principal" mechanism in XWiki, with roles and delegates.
> 
> A first usecase is separating users and their admin privileges. Instead
> of automatically granting admin privileges to users all the time, there
> should be a "sudo" equivalent. This gives a bit of safety against
> cross-XYZ / XYZ-injection attacks, since normally a user browsing the
> wiki wouldn't have admin/scripting/programming privileges, unless
> manually entering "admin mode". There wouldn't be an "Admin" user
> anymore, just users that can switch to "Administrator" mode, and this
> would be recorded as (for example):
> 
> delegate::role(user::xwiki:Users.jdoe|role::administrator)
> delegate::role(user::xwiki:Users.jdoe|role::developer)
> 
> When asking for the current principal, this is what would be returned,
> and stored as the author of a document after a change. We still know
> that it was "jdoe" performing the changes. Checking for scripting rights
> later is done both on the source user (if it's denied) and on the target
> role (if it's allowed).
> 
> return <is the source denied> ? false : <is the target allowed>
> 
> 
> Another usecase would be an admin logging in as another user, to
> experience what the user sees without having to ask (or temporarily
> change) the user's password. Jira has this feature, and it's very useful
> for debugging rights. This can also be recorded as a delegate principal:
> 
> delegate::su(user::xwiki:Users.tanderson|user::xwiki:Users.neo)
> 
> 
> A third usecase, which doesn't make much sense in the base XWiki, but
> which is needed in more complex applications where there's a more
> pronounced emphasis on groups, is when a group member acts on behalf of
> the group:
> 
> delegate::member(user::xwiki:Users.padams|group::xwiki.Groups.Pediatricians)
> 
> Here, Patch Adams is acting on behalf of the group of pediatricians when
> writing a press release.
> 
> 
> Another one: more info about guests. Instead of pretending that there's
> only one special "XWikiGuest" user, we can record more information:
> 
> role::guest(ip:192.168.0.123|visit:42)
> 
> Later, we can see everything this guest did.
> 
> 
> That's on the "who am I" end, but this also extends to "who should I be"
> part, i.e. setting rights for special roles.
> 
> allow admin for role::administrator
> allow scripting for role::developer
> deny scripting for group::xwiki:Groups.TheBadGuys
> allow delete for role::creator
> deny view for role::guest
> allow sudo for group::xwiki:Groups.Administrators
> deny vote for karma::lt(100)
> 
> The last one shows that the types of principals can be customized by new
> component implementations, and evaluating if the current principal
> matches a target principal can be more complex than what's there now,
> "is the same user" or "is member of a group". Also, the rights should be
> extensible, right now adding a new right is not impossible, but not very
> easy either.
> 
> I've been working on designing and implementing this on and off for the
> past year, but there's still a long way to go.
> 
> 
> Just some food for thought, -0 for the proposed change.
> 
> On 01/17/2017 10:54 AM, Thomas Mortagne wrote:
>> Hi devs,
>>
>> I'm thinking since a long time that maybe we should automatically make
>> superadmin the author of the pages when installing a XAR as long as
>> the current user (and current author) have programming right (i.e. has
>> the same rights than superadmin when the extension is installed). I
>> don't really see anything against it these days and it's easy to do so
>> why not.
>>
>> Basically the goal is to reduce the possibility to break extensions
>> when you play with existing users/groups/rights. Common user case
>> being to get rid of some old adminsys leaving the company.
>>
>> WDYT ?
>>
>> Note: to be complete we could imagine the same kind of thing for admin
>> user but that require the introduction of a virtual admin right user
>> like superadmin is a vitual programming right user. But let's not
>> discuss too many thing at once.
>>
> 
> 


-- 
Sergiu Dumitriu
http://purl.org/net/sergiu

Reply via email to