Merge pull request #19690 from edx/dcs/retire-perm

Refactored the retirement permission to use Django rules
This commit is contained in:
Dave St.Germain
2019-02-04 15:17:38 -05:00
committed by GitHub
3 changed files with 26 additions and 5 deletions

View File

@@ -3,7 +3,6 @@ Permissions classes for User accounts API views.
"""
from __future__ import unicode_literals
from django.conf import settings
from rest_framework import permissions
@@ -23,7 +22,4 @@ class CanRetireUser(permissions.BasePermission):
retire a User account.
"""
def has_permission(self, request, view):
return (
request.user.username == settings.RETIREMENT_SERVICE_WORKER_USERNAME or
request.user.is_superuser
)
return request.user.has_perm('accounts.can_retire_user')

View File

@@ -0,0 +1,20 @@
"""
Django rules for accounts
"""
from __future__ import absolute_import
from django.conf import settings
import rules
@rules.predicate
def can_retire_user(user):
"""
Returns whether the user can retire accounts
"""
return (
user.username == settings.RETIREMENT_SERVICE_WORKER_USERNAME or
user.is_superuser
)
rules.add_perm('accounts.can_retire_user', can_retire_user)