permission.py 788 B

12345678910111213141516171819202122
  1. # coding=utf-8
  2. from rest_framework import permissions
  3. from django.utils import timezone
  4. from apps.staff.models import User
  5. class IsStaff(permissions.BasePermission):
  6. def has_permission(self, request, view):
  7. if not request.user or not request.user.is_authenticated:
  8. return False
  9. User.objects.filter(pk=request.user.pk).select_for_update().update(last_refresh=timezone.now())
  10. return request.user.is_staff()
  11. class IsAdministrator(permissions.BasePermission):
  12. def has_permission(self, request, view):
  13. if not request.user or not request.user.is_authenticated:
  14. return False
  15. User.objects.filter(pk=request.user.pk).select_for_update().update(last_refresh=timezone.now())
  16. return request.user.is_administrator()