From d4a9605c8590e1fc9efc9c19293e98b88d6e748a Mon Sep 17 00:00:00 2001 From: Sanjay B Date: Tue, 28 May 2013 18:36:51 +0530 Subject: [PATCH] permissions for groups, scripts, productions --- itf/itfprofiles/models.py | 21 +++++++++++++++++++++ itf/scriptbank/models.py | 5 +++++ 2 files changed, 26 insertions(+) diff --git a/itf/itfprofiles/models.py b/itf/itfprofiles/models.py index bb4e945..57ad7d9 100644 --- a/itf/itfprofiles/models.py +++ b/itf/itfprofiles/models.py @@ -336,6 +336,22 @@ class TheatreGroup(ItfModel): def __unicode__(self): return self.name + def user_has_perms(self, user): + from app.models import ItfModel + if ItfModel.user_has_perms(self, user): + return True + else: + if self.is_user_admin(user): + return True + else: + return False + + def is_user_admin(self, user): + for pg in self.persongroup_set.all(): + if user.id == pg.person.user_id and pg.is_admin == True: + return True + return False + def get_dict(self): return { #'object':self, @@ -414,6 +430,11 @@ class Production(ItfModel): def __unicode__(self): return self.name + def user_has_perms(self, user): + if self.added_by_id == user.id: + return True + return self.group.user_has_perms(user) + def get_people(self): persons = [{"person":self.director, "role":"director", "assoc_type":'production', "assoc_name":self.name }, {"person":self.playwright, "role":"playwright", "assoc_type":'production', "assoc_name":self.name } diff --git a/itf/scriptbank/models.py b/itf/scriptbank/models.py index c6ef051..2e9fbba 100755 --- a/itf/scriptbank/models.py +++ b/itf/scriptbank/models.py @@ -56,6 +56,11 @@ class Script(ItfModel): def __unicode__(self): return self.title + def user_has_perms(self, user): + if self.added_by_id == user.id: + return True + return self.theatre_group.user_has_perms(user) + def list_dict(self): return { 'id': self.id,