shortener/src/redirect/backends.py

15 lines
497 B
Python
Raw Normal View History

2022-06-30 08:37:10 +02:00
from django.contrib.auth.backends import ModelBackend
2022-02-27 23:07:57 +01:00
from django.contrib.auth.models import AbstractUser
from redirect.models import Redirect
class RedirectBackend(ModelBackend):
def has_perm(self, user_obj: AbstractUser, perm, obj=None):
allowed = super().has_perm(user_obj, perm)
if allowed:
return allowed
if obj and isinstance(obj, Redirect):
return obj.owner == user_obj or obj.group_owner in user_obj.groups.all()
return False