]> git.0d.be Git - panikdb.git/blob - panikdb/aa/models.py
bits of permission management
[panikdb.git] / panikdb / aa / models.py
1 import re
2
3 from django.contrib.auth.models import AbstractUser
4 from django.core import validators
5 from django.db import models
6
7 from emissions.models import Emission, Episode, NewsItem, NewsCategory
8
9 class User(AbstractUser):
10     emissions = models.ManyToManyField(Emission, null=True, blank=True)
11     news_categories = models.ManyToManyField(NewsCategory, null=True, blank=True)
12
13     def can_manage(self, object):
14         if self.is_staff:
15             return True
16         if isinstance(object, Emission):
17             return object in self.emissions.all()
18         if isinstance(object, Episode):
19             return object.emission in self.emissions.all()
20         if isinstance(object, NewsItem):
21             return object.emission in self.emissions.all()
22         return False