summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-08-07 13:20:12 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-08-07 13:20:12 +0200
commitef399e463e9ad6537e17f8d7aa3a16bfc86e4544 (patch)
treea9911a53c42a09477d41a9d7c2255513d483558f /chimere/models.py
parenta50daee604b44c097a688f1ef94346ad3f804d41 (diff)
downloadChimère-ef399e463e9ad6537e17f8d7aa3a16bfc86e4544.tar.bz2
Chimère-ef399e463e9ad6537e17f8d7aa3a16bfc86e4544.zip
Map: manage group permissions - fix some issues on permissions - tests
Diffstat (limited to 'chimere/models.py')
-rw-r--r--chimere/models.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/chimere/models.py b/chimere/models.py
index fa139e0..cd2996d 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -1411,10 +1411,14 @@ class Map(models.Model, SimpleArea):
] if edit else [
{'public_read':True}]
if user and user.is_authenticated():
- filters += [{'mapusers__user':user, 'mapusers__write':True},
- {'mapusers__user':user, 'mapusers__propose':True},
- ] if edit else [
- {'mapusers__user':user, 'mapusers__read':True},]
+ filters += [
+ {'mapusers__user':user, 'mapusers__write':True},
+ {'mapusers__user':user, 'mapusers__propose':True},
+ {'mapgroups__group__user':user, 'mapgroups__write':True},
+ {'mapgroups__group__user':user, 'mapgroups__propose':True},
+ ] if edit else [
+ {'mapusers__user':user, 'mapusers__read':True},
+ {'mapgroups__group__user':user, 'mapgroups__read':True},]
query = None
for fltr in filters:
fltr.update(map_filter)
@@ -1565,6 +1569,16 @@ class MapUsers(models.Model):
verbose_name = _("Map - user")
verbose_name_plural = _("Map - users")
+class MapGroups(models.Model):
+ map = models.ForeignKey(Map, related_name='mapgroups')
+ group = models.ForeignKey(Group, related_name='mapgroups')
+ read = models.BooleanField(_(u"Can read the map"))
+ propose = models.BooleanField(_(u"Can propose item to the map"))
+ write = models.BooleanField(_(u"Can write without moderation to the map"))
+ class Meta:
+ verbose_name = _("Map - group")
+ verbose_name_plural = _("Map - groups")
+
class MapLayers(models.Model):
map = models.ForeignKey(Map)
layer = models.ForeignKey(Layer)