diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-03-30 19:27:00 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-03-30 19:27:00 +0200 |
commit | b1b03d624a8c501bc15a21e90e7abde2fd28698f (patch) | |
tree | 9b9a2f7ce9dcf78a581ba41e55010afdacc264c2 | |
parent | d988e53b80d883f86e705e1c1425e894ee4dd52f (diff) | |
download | Ishtar-b1b03d624a8c501bc15a21e90e7abde2fd28698f.tar.bz2 Ishtar-b1b03d624a8c501bc15a21e90e7abde2fd28698f.zip |
Access control: define get_query_own for persons
-rw-r--r-- | archaeological_operations/models.py | 4 | ||||
-rw-r--r-- | ishtar_common/models.py | 12 |
2 files changed, 15 insertions, 1 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index d18181722..bef149b2c 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -270,7 +270,9 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, on_delete=models.SET_NULL, related_name='operation_responsability') collaborators = models.ManyToManyField( - Person, blank=True, null=True, verbose_name=_(u"Collaborators")) + Person, blank=True, null=True, verbose_name=_(u"Collaborators"), + related_name='operation_collaborator' + ) year = models.IntegerField(_(u"Year"), null=True, blank=True) operation_code = models.IntegerField(_(u"Numeric reference"), null=True, blank=True) diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 048af1294..66433747c 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2770,6 +2770,18 @@ class Person(Address, Merge, OwnPerms, ValueGetter): for fle in self.general_contractor.all(): fle.save() # force update of raw_general_contractor + @classmethod + def get_query_owns(cls, user): + return \ + Q(operation_scientist_responsability__collaborators__ishtaruser + =user.ishtaruser) | \ + Q(operation_scientist_responsability__scientist__ishtaruser + =user.ishtaruser) | \ + Q(operation_collaborator__collaborators__ishtaruser + =user.ishtaruser) | \ + Q(operation_collaborator__scientist__ishtaruser + =user.ishtaruser) + class IshtarUser(User): TABLE_COLS = ('username', 'person__name', 'person__surname', |