Commit Graph

36 Commits

Author SHA1 Message Date
Roberto Rosario
f3f7b4bb7d Refactor the permissions app
Use the new AddRemove View for the Role's group and
permissions views as well as the Group's role views.

Convert the API to use viewsets.

Add more tests.

Add role created and edited events.

Add event subscription support to roles.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-02-12 03:36:16 -04:00
Roberto Rosario
9d8c8f4833 Optimize permission check
Convert the user permission check from a double Python loop
to a single ORM query.

Add methods to the Role model to grant or revoke permissions.

Rename the method requester_has_this to user_has_this for clarity.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-01-13 22:57:59 -04:00
Roberto Rosario
e83f6e55a0 Permission: Permission reference to property
Convert the volatile permission reference in the stored permission
model from a method to a property to allow future caching optimization.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-12 23:12:52 -04:00
Roberto Rosario
b04b205fb6 Add docstrings for almost all models
Also adds docstring to some managers and model methods.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-11-24 22:56:35 -04:00
Roberto Rosario
27bca4c438 Sort permission namespaces and permissions in the role permission views.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 04:45:10 -04:00
Michael Price
53239385ae Add the "to=" keyword argument to all ForeignKey, ManayToMany and OneToOne Fields.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:49:04 -04:00
Michael Price
28aa0b913c Reorganize and sort models and managers according to Mayan's best practices.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:21:37 -04:00
Roberto Rosario
ec223dd54d PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 02:08:39 -04:00
Roberto Rosario
a11b0eb39a Style cleanup.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 04:13:39 -04:00
Roberto Rosario
f09321f6ab Fix deprecation warnings for Django 1.11 and Django 2.0.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 00:25:18 -04:00
Roberto Rosario
6c6ca38374 Replace all instances of unicode only handling to use force_text.
Replace all __unicode__ methods to __str__ and the
@python_2_unicode_compatible decorator.
Replace all instance of smart_str, smart_unicode, force_uncode
with force_text.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-05 15:03:24 -04:00
Roberto Rosario
63682a2945 Merge remote-tracking branch 'origin/master' into feature/master_merge
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-14 15:57:38 -04:00
Roger Hunwicks
ed0145cc1c More detailed logging for permissions checks - see #321
Signed-off-by: Roger Hunwicks <roger@tonic-solutions.com>
2017-02-23 16:29:20 +02:00
Roberto Rosario
5f99b123d7 Merge branch 'master' into master_merge 2017-02-03 14:08:34 -04:00
Roberto Rosario
e2c8f7b3fc Add complete role API endpoints (role create, patch, put, delete,
add/update role groups, add/update role permissions).
2017-01-30 18:33:06 -04:00
Roberto Rosario
23ffecdd30 Simplify permission lookup method. Add refresh class method to make sure
stored permissions are in sync with proxy permission.
Add __repr__ method.
2017-01-15 23:55:16 -04:00
Roberto Rosario
6e43b99ecd Add natural key serialization. 2015-10-17 05:13:58 -04:00
Roberto Rosario
4527563d89 PEP8 cleanups, specially E501 line too long. 2015-07-22 18:21:37 -04:00
Roberto Rosario
ea49af7255 Remove role name field. 2015-07-08 19:01:07 -04:00
Roberto Rosario
0e24f8d821 Simplify and remove unused code 2015-06-30 02:43:58 -04:00
Roberto Rosario
a68be31e52 Remove unused permissions check code 2015-06-29 16:58:46 -04:00
Roberto Rosario
5be41af1cf Remove DefaultAccessControlList support 2015-06-29 14:51:37 -04:00
Roberto Rosario
3754f45001 Reduce checked out document column label string size. Refactor roles: roles can only have groups as members, only roles can hold permissions. 2015-06-29 14:07:02 -04:00
Roberto Rosario
1c084aa07b Split Permission and StoredPermission class and model into different modules. Simplified the Permission class. 2015-06-28 01:03:29 -04:00
Roberto Rosario
d26402974a Allow registering permission from the permission namespace. Replace all permission variables to be lowercase (style guide reserver uppercase variables for constants and literals). 2015-06-28 00:19:49 -04:00
Roberto Rosario
8e62c21bb1 Add missing return statement 2015-04-06 01:53:37 -04:00
Roberto Rosario
4d2891b361 Remove use of the permalink decorator 2015-04-06 01:36:22 -04:00
Roberto Rosario
26d64c45f5 Add the @python_2_unicode_compatible to all models. Closes issue #67 2015-04-01 02:40:19 -04:00
Roberto Rosario
b55acb6e12 Normalize import style 2015-01-24 17:05:32 -04:00
Roberto Rosario
d59ea3ede2 Add from __future__ import unicode_literals, issue #37 2015-01-19 04:06:40 -04:00
Roberto Rosario
ba1729106f Pass arguments to the logger the correct way 2014-11-02 20:55:21 -04:00
Roberto Rosario
2ea48bd1ba PEP8 cleanups, further removal of unused code 2014-10-21 19:28:52 -04:00
Roberto Rosario
0a55b4c16a Add missing view namespace 2014-10-21 17:53:35 -04:00
Roberto Rosario
06dd1b3368 Issue #39, Explicitly captalize string now that they are not capitalized blindly by the templates 2014-10-02 01:17:27 -04:00
Roberto Rosario
ac061f2203 PEP8 Cleanups, simple sintax errors fixes 2014-06-25 02:53:12 -04:00
Roberto Rosario
ec1745b50b Initial changes to support the new Django 1.6 project structure 2014-06-15 13:13:21 +02:00