[[BackLinksMenu]] [[TicketQuery(summary=BASE_SECURITY_MODEL_PERMISSIONS_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == Implement permissions as a property of an object. The permissions combine a user, group or everyone. Permissions are a list, which allows for multiple permissions on an object. Permissions should be more access control list oriented vs unix permissions styled. Each permission can be additive or subtractive. For example, a resource can have a modify permission for Group "Art Department" but User "Fred" who is in the group might have modify permission removed. Therefore individual user permissions must usurp any group permissions given on a particular object. Permissions on an object include: * Read - Author can use the resource in a book * Write - Can modify permissions * Modify - Author can scale, rotate or apply other transformations to the resource * Export - Resource can be exported (copied to the clipboard, etc) == Task requirements == * Implement permissions as a property on resources * Add a permissions panel to the resources flap that allows the setting of permissions * Document how code checks for permissions on an object == Task result == The result of this task is code == Implementation idea == * Remember that a user cannot change permissions if they don't have write permission * see the Own PRO_LIB property == Related == * [wiki:BASE_SECURITY_MODEL_COMMONS_R0] * [wiki:BASE_SECURITY_MODEL_PERMISSIONS_R0] * [wiki:BASE_SECURITY_MODEL_USERS_R0] * [wiki:BASE_SECURITY_MODEL_GROUPS_R0] == How to demo == If this task ends up having UI (I am not sure as of this writing) then you can demo the UI for permissions, otherwise share the documentation. = Design = ^(Describe your design here.)^ = Implementation = ^(Describe and link the implementation results here (from the wiki or the repository).)^ = Testing = ^(Place the testing results here.)^ = Comments = Own PRO_LIB property