Page MenuHomePhabricator

Implement object level permissions
Closed, ResolvedPublic

Description

Content that can be edited will have various levels of "protection" ranging from any authenticated user can edit to only the original content creator (or an admin) can edit.

Use Django's built-in per-object permissions system to manage access control for models.

Related Objects

StatusSubtypeAssignedTask
Resolvedbd808
Resolvedbd808

Event Timeline

bd808 triaged this task as Medium priority.Mar 24 2021, 12:15 AM

After examining several options (django-guardian, django-rules, drf-access-policy), we have chosen the django-rules library as our starting point. This library is light weight, and uses a declarative configuration that feels easier to reason about than django-guardian's database level configuration.

bd808 moved this task from Backlog to In Progress on the Toolhub board.

Change 684124 had a related patch set uploaded (by BryanDavis; author: Bryan Davis):

[wikimedia/toolhub@main] authz: Add migration to create default permissions groups

https://gerrit.wikimedia.org/r/684124

Change 684126 had a related patch set uploaded (by BryanDavis; author: Bryan Davis):

[wikimedia/toolhub@main] api: implement object level permissions

https://gerrit.wikimedia.org/r/684126

Change 684124 merged by jenkins-bot:

[wikimedia/toolhub@main] authz: Add migration to create default permissions groups

https://gerrit.wikimedia.org/r/684124

Change 685142 had a related patch set uploaded (by BryanDavis; author: Bryan Davis):

[wikimedia/toolhub@main] api: Add group membership endpoints

https://gerrit.wikimedia.org/r/685142

Change 685880 had a related patch set uploaded (by BryanDavis; author: Bryan Davis):

[wikimedia/toolhub@main] auditlog: Track group membership changes

https://gerrit.wikimedia.org/r/685880

Change 684126 merged by jenkins-bot:

[wikimedia/toolhub@main] api: implement object level permissions

https://gerrit.wikimedia.org/r/684126

Change 685142 merged by jenkins-bot:

[wikimedia/toolhub@main] api: Add group membership endpoints

https://gerrit.wikimedia.org/r/685142

Change 685880 merged by jenkins-bot:

[wikimedia/toolhub@main] auditlog: Track group membership changes

https://gerrit.wikimedia.org/r/685880