Created by
Michal Oleniec
| class PermisionGroup(models.Model):
department = models.ForeignKey(Department)
level = models.ForeignKey(Level)
restaurant = models.ForeignKey(Restaurant)
#includes = models.ManyToManyField(User)
excludes = models.ManyToManyField(User)
permissions = models.ManyToManyField(AmebaPermission)
def get_users():
User.objects.filter(
department = self.department # < te atrybuty pewnie dynamicznie przez *kwargs co nie jest nullem
level = self.level
...
).exclude(ids__in=self.excludes.values_list('id', flat=True))
class Program(models.Model):
...
permission_groups = models.ManyToMany(PermisionGroup)
def get_assigned_users():
program_assigned_users = None
for permission_group in self.permission_groups.filter(permissions__name='program.assigned'):
program_assigned_users = program_assigned_users + permission_group.get_users()
return set(program_assigned_users)
def save():
super().save()
assign_perm('program.assigned', self, self.get_assigned_users())
|