From 071a21e70468e099987e3481030f2efe5243a61d Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Sun, 29 May 2011 13:35:22 +0100 Subject: [PATCH] Don't allow users to be kicked from Managed groups --- app/groups/views.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/app/groups/views.py b/app/groups/views.py index 4c695c3..1488197 100644 --- a/app/groups/views.py +++ b/app/groups/views.py @@ -170,21 +170,22 @@ def kick_member(request, groupid, userid): group = get_object_or_404(Group, id=groupid) user = get_object_or_404(User, id=userid) - if user == request.user: - if user in group.groupinformation.admins.all(): - group.groupinformation.admins.remove(user) - user.groups.remove(group) - update_user_access.delay(user.id) - messages.add_message(request, messages.INFO, "You have left the group %s" % group.name) - - elif request.user in group.groupinformation.admins.all() or request.user.is_superuser: - if not user in group.groupinformation.admins.all(): + if not group.groupinformation.type in [GROUP_TYPE_MANAGED]: + if user == request.user: + if user in group.groupinformation.admins.all(): + group.groupinformation.admins.remove(user) user.groups.remove(group) update_user_access.delay(user.id) - messages.add_message(request, messages.INFO, "%s has been removed from %s." % (user.username, group.name)) - else: - messages.add_message(request, messages.INFO, "%s is a admin of %s and cannot be removed." % (user.username, group.name)) + messages.add_message(request, messages.INFO, "You have left the group %s" % group.name) - return HttpResponseRedirect(reverse('groups.views.admin_group', args=[groupid])) + elif request.user in group.groupinformation.admins.all() or request.user.is_superuser: + if not user in group.groupinformation.admins.all(): + user.groups.remove(group) + update_user_access.delay(user.id) + messages.add_message(request, messages.INFO, "%s has been removed from %s." % (user.username, group.name)) + else: + messages.add_message(request, messages.INFO, "%s is a admin of %s and cannot be removed." % (user.username, group.name)) + + return HttpResponseRedirect(reverse('groups.views.admin_group', args=[groupid])) return HttpResponseRedirect(reverse('groups.views.group_list'))