User:maxm > Permissioning lockout problem

Permissioning lockout problem

Related Bugs:

     

Operations
LOGIN BROWSE READ SUBSCRIBE UPDATE CREATE DELETE CHANGEPERMISSIONS CONTROLPANEL UNSAFECONTENT ADMIN

     

Current Default Roles
None:		LOGIN
Viewer:		LOGIN BROWSE READ SUBSCRIBE 
Contributor:	LOGIN BROWSE READ SUBSCRIBE UPDATE CREATE DELETE UNSAFECONTENT
Manager:	LOGIN BROWSE READ SUBSCRIBE UPDATE CREATE DELETE UNSAFECONTENT CHANGEPERMISSIONS 

     

Current Default Restrictions
public allows: 		LOGIN BROWSE READ SUBSCRIBE UPDATE CREATE DELETE CHANGEPERMISSIONS 
semi-public allows: 	LOGIN BROWSE READ SUBSCRIBE 
private allows: 	LOGIN
Users
  • User N, N1 (None)
  • User V (Viewer)
  • User C, C1 (Contributor)
  • User M (Manager)

Proposed solutions

Dynamic roles

All current and future grants are converted to special dynamic roles. These work by countering any restriction in place and in effect restores the base permissions of the user (user+group

Modify restrictions

Change restrictions to allow CHANGEPERMISSIONS (semi-public: 1039, private: 1024). This allows a page to have the usual operations removed such as reading and writing but allows a user with a base permission that includes CHANGEPERMISSIONS to continue to restrict and grant permissions limited by their base permissions containing other read/write related flags

Use case 1: M makes P1 private with grants(N, V, C)

Status quo:

Response:

  • P1 is set to private
  • M, N, V, C are given Contributor grants to P1 

Results:

  • N: None - private + Contributor = Contributor
  • V: Viewer - private + Contributor = Contributor
  • C: Contributor - private + contributor = Contributor
  • M: Manager - private + contributor = Contributor {LOGIN BROWSE READ SUBSCRIBE UPDATE CREATE DELETE UNSAFECONTENT} (locked out!)
  • N1: None - private = {}
  • C1: Contributor - private=  {}
Dynamic roles:

Response:

  • P1 is set to private
  • M, N, V, C are given *dynamic* grants to P1 


Results:

  • N: None - (no restrictions subtracted due to *dynamic* grant) + *dynamic* = None
  • V: Viewer - (no restrictions subtracted due to *dynamic* grant) + *dynamic* = Viewer
  • C: Contributor - (no restrictions subtracted due to *dynamic* grant) + *dynamic* = Contributor
  • M: Manager - (no restrictions subtracted due to *dynamic* grant) + *dynamic* = Manager
  • C1: Contributor - private = {}
  • N1: None - private = {}
Modify restrictions:

Response:

  • P1 is set to private
  • M, N, V, C are given Contributor grants to P1

Results:

  • N: None - private + Contributor = Contributor
  • V: Viewer - private + Contributor = Contributor
  • C: Contributor - private + contributor = Contributor
  • M: Manager - private + contributor =  Contributor {LOGIN BROWSE READ SUBSCRIBE UPDATE CREATE DELETE UNSAFECONTENT CHANGEPERMISSIONS}
  • N1: None - private = {}
  • C1: Contributor - private =  {}

Use case 2: M makes P2 semi-public with grants(N,V,C) 

Status quo:

Response:

  • P2 is set to semi-public
  • M, N, V, C are given Contributor grants to P2 

Results:

  • N: None - semipublic + Contributor = Contributor
  • V: Viewer - semipublic + Contributor = Contributor
  • C: Contributor - semipublic + contributor = Contributor
  • M: Manager - semipublic + contributor = LOGIN BROWSE READ SUBSCRIBE UPDATE CREATE DELETE UNSAFECONTENT (locked out!)
  • N1: None - semipublic = {}
  • C1: Contributor - semipublic =  {LOGIN BROWSE READ SUBSCRIBE}
Dynamic roles:


Response:

  • P2 is set to semi-public
  • M, N, V, C are given *dynamic* grants to P2

Results:

  • N: None - (no restrictions subtracted due to *dynamic* grant) + *dynamic* = None
  • V: Viewer - (no restrictions subtracted due to *dynamic* grant) + *dynamic* = Viewer
  • C: Contributor - (no restrictions subtracted due to *dynamic* grant) + *dynamic* = Contributor
  • M: Manager - (no restrictions subtracted due to *dynamic* grant) + *dynamic* = Manager
  • C1: Contributor - semipublic = {LOGIN BROWSE READ SUBSCRIBE}
  • N1: None - semipublic = {}
Modify restrictions:

Response:

  • P2 is set to semi-public
  • M, N, V, C are given Contributor grants to P2 

Results:

  • N: None - semipublic + Contributor = Contributor
  • V: Viewer - semipublic + Contributor = Contributor
  • C: Contributor - semipublic + contributor = Contributor
  • M: Manager - semipublic + contributor = LOGIN BROWSE READ SUBSCRIBE UPDATE CREATE DELETE UNSAFECONTENT CHANGEPERMISSIONS
  • C1: Contributor - semipublic = {LOGIN BROWSE READ SUBSCRIBE}
  • N1: None - semipublic = {}



 

Tag page
You must login to post a comment.
Powered by MindTouch Deki v.8.08