wiki:BASE_SECURITY_MODEL_PERMISSIONS_R0

Version 4 (modified by sriggins, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro 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|) failed
current transaction is aborted, commands ignored until end of transaction block

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

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