shortener/src/redirect/backends.py
2022-06-30 08:37:10 +02:00

15 lines
497 B
Python

from django.contrib.auth.backends import ModelBackend
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