| 15 | == Planned Features == |
| 16 | |
| 17 | * Negative permissions, e.g. "User A can not modify article 2 and 4 but can modify all other articles" |
| 18 | * A modified admin page for editing objects that will allow admins to add users with specific (negative and positive) row level permissions to the object being edited |
| 19 | * A method of adding row level permissions using an API |
| 20 | * Allow custom permissions for row level permissions |
| 21 | * Developer can enable or, by default, disable the row level permissions on an object |
| 22 | * Generic functions to create row level permissions in certain scenarios, e.g. the above scenerio |
| 23 | |
| 24 | |
23 | | By default, these permissions will be disabled, but the developer will be able to enable the row level permissions using the meta attribute for each type of object. |
24 | | |
25 | | The row level permissions will allow custom permissions. |
26 | | |
27 | | The row level permissions can be modified using an API or by the administration interface. |
28 | | |
29 | | Another possible method of doing this would be a similiar method to the current unix permissions. This method is not as flexible as the above method, and will most likely modify the object's table directly which might cause problems. |
| 33 | ||'''Task'''||'''Status'''|| |
| 34 | ||Row Level Permission object is implemented and tested||In progress|| |
| 35 | ||Developer can choose to enable row level permissions||Not started|| |
| 36 | ||API for modifying row level permissions is implemented and tested||Not started|| |
| 37 | ||Admin interface is modified to editing of row level permissions||Not started|| |
| 38 | ||Negative row level perms||Not started|| |
| 39 | ||Generic Functions to create row level perms||Not started|| |
50 | | * Using GenericForeignKey and one table instead of having a table for each object. Suggested by Ian Holsman. As an example see: http://files.lukeplant.fastmail.fm/public/python/lp_tagging_app_0.1.zip |
51 | | * Implementing negativity. ie person X is NOT allowed to see row Y. Suggested by Ian Holsman. Suggested by Honza Král to allow something like "person X can read all articles except article Y". This would most likely require a rewrite of the order of permissions, therefore doing it from most specific (row level) to least specific (object type). |
| 60 | * ''Using GenericForeignKey and one table instead of having a table for each object. Suggested by Ian Holsman. As an example see: http://files.lukeplant.fastmail.fm/public/python/lp_tagging_app_0.1.zip '' |
| 61 | * ''Implementing negativity. ie person X is NOT allowed to see row Y. Suggested by Ian Holsman. Suggested by Honza Král to allow something like "person X can read all articles except article Y". This would most likely require a rewrite of the order of permissions, therefore doing it from most specific (row level) to least specific (object type).'' |
55 | | * From Ian Holsman: "while I use integer's as my keys (which is they default django way), others override this and use strings and other weird things. I'm not sure how my previous suggestion would work when you take that kind of thing into account." |
56 | | * Generic mechanism for creating row level permissions when enabled, such as the example of the forum given above. E,g. the developer would enable this feature, and from that point on a user would have row level permissions (specified by the developer) for any object they create. Suggested by Andy Shaw. |
57 | | * From Andy Shaw: "would Luke's GenericForeignKey allow for inline editing, assuming it was to be adopted? Personally I'd much rather be able to alter a row's permissions on its own admin page than have to switch table." |
58 | | |
59 | | |
60 | | |
61 | | |
62 | | |
| 65 | * ''From Ian Holsman: "while I use integer's as my keys (which is they default Django way), others override this and use strings and other weird things. I'm not sure how my previous suggestion would work when you take that kind of thing into account."'' |
| 66 | * ''Generic mechanism for creating row level permissions when enabled, such as the example of the forum given above. E,g. the developer would enable this feature, and from that point on a user would have row level permissions (specified by the developer) for any object they create. Suggested by Andy Shaw.'' |
| 67 | * ''From Andy Shaw: "would Luke's GenericForeignKey allow for inline editing, assuming it was to be adopted? Personally I'd much rather be able to alter a row's permissions on its own admin page than have to switch table."'' |