From b162a9bd8eaaa1b3c0d5cf72d38be10b88575ca6 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 5 Aug 2014 09:03:18 +0200 Subject: [PATCH] Include the model name. see #574 --- modoboa/extensions/limits/__init__.py | 8 ++++---- modoboa/extensions/radicale/__init__.py | 26 +++++++++++++------------ modoboa/lib/permissions.py | 4 ++-- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/modoboa/extensions/limits/__init__.py b/modoboa/extensions/limits/__init__.py index 41759d58a..7119b7077 100644 --- a/modoboa/extensions/limits/__init__.py +++ b/modoboa/extensions/limits/__init__.py @@ -40,10 +40,10 @@ class Limits(ModoExtension): ct = ContentType.objects.get_for_model(Domain) add_permissions_to_group( - "Resellers", [("admin", "view_domains"), - ("admin", "add_domain"), - ("admin", "change_domain"), - ("admin", "delete_domain")] + "Resellers", [("admin", "domain", "view_domains"), + ("admin", "domain", "add_domain"), + ("admin", "domain", "change_domain"), + ("admin", "domain", "delete_domain")] ) for user in User.objects.filter(groups__name='DomainAdmins'): diff --git a/modoboa/extensions/radicale/__init__.py b/modoboa/extensions/radicale/__init__.py index 80fd42225..fb63c511a 100644 --- a/modoboa/extensions/radicale/__init__.py +++ b/modoboa/extensions/radicale/__init__.py @@ -17,12 +17,13 @@ def init_limits_dependant_features(): We mainly define extra permissions. """ add_permissions_to_group( - "Resellers", [("radicale", "add_usercalendar"), - ("radicale", "change_usercalendar"), - ("radicale", "delete_usercalendar"), - ("radicale", "add_sharedcalendar"), - ("radicale", "change_sharedcalendar"), - ("radicale", "delete_sharedcalendar")] + "Resellers", + [("radicale", "usercalendar", "add_usercalendar"), + ("radicale", "usercalendar", "change_usercalendar"), + ("radicale", "usercalendar", "delete_usercalendar"), + ("radicale", "sharedcalendar", "add_sharedcalendar"), + ("radicale", "sharedcalendar", "change_sharedcalendar"), + ("radicale", "sharedcalendar", "delete_sharedcalendar")] ) @@ -40,12 +41,13 @@ class Radicale(ModoExtension): """Plugin initialization. """ add_permissions_to_group( - "DomainAdmins", [("radicale", "add_usercalendar"), - ("radicale", "change_usercalendar"), - ("radicale", "delete_usercalendar"), - ("radicale", "add_sharedcalendar"), - ("radicale", "change_sharedcalendar"), - ("radicale", "delete_sharedcalendar")] + "DomainAdmins", + [("radicale", "usercalendar", "add_usercalendar"), + ("radicale", "usercalendar", "change_usercalendar"), + ("radicale", "usercalendar", "delete_usercalendar"), + ("radicale", "sharedcalendar", "add_sharedcalendar"), + ("radicale", "sharedcalendar", "change_sharedcalendar"), + ("radicale", "sharedcalendar", "delete_sharedcalendar")] ) if exts_pool.is_extension_enabled('limits'): init_limits_dependant_features() diff --git a/modoboa/lib/permissions.py b/modoboa/lib/permissions.py index 82a405fd1..40cc67cde 100644 --- a/modoboa/lib/permissions.py +++ b/modoboa/lib/permissions.py @@ -153,9 +153,9 @@ def add_permissions_to_group(groupname, permissions): from django.contrib.auth.models import Group, Permission grp = Group.objects.get(name=groupname) - for appname, permname in permissions: + for appname, modelname, permname in permissions: ct = ContentType.objects.get_by_natural_key( - appname, permname.split("_")[1]) + appname, modelname) grp.permissions.add( Permission.objects.get(content_type=ct, codename=permname) )