From c1bb3a90bb07136674c97354916c2bc73a70fbab Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 29 Mar 2011 11:17:04 -0400 Subject: [PATCH] Add a user to a default role only when the user is created --- apps/permissions/__init__.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/apps/permissions/__init__.py b/apps/permissions/__init__.py index c975bf0283..94f7521ee8 100644 --- a/apps/permissions/__init__.py +++ b/apps/permissions/__init__.py @@ -27,14 +27,17 @@ register_links(['role_list', 'role_view', 'role_create', 'role_edit', 'role_perm def user_post_save(sender, instance, **kwargs): - for default_role in DEFAULT_ROLES: - if isinstance(default_role, Role): - default_role.add_member(instance) - else: - try: - role = Role.objects.get(name=default_role) - role.add_member(instance) - except ObjectDoesNotExist: - pass + if kwargs.get('created', False): + for default_role in DEFAULT_ROLES: + if isinstance(default_role, Role): + #If a model is passed, execute method + default_role.add_member(instance) + else: + #If a role name is passed, lookup the corresponding model + try: + role = Role.objects.get(name=default_role) + role.add_member(instance) + except ObjectDoesNotExist: + pass post_save.connect(user_post_save, sender=User)