Add anonymous user support to the role member add and remove views

This commit is contained in:
Roberto Rosario
2012-01-09 08:33:44 -04:00
parent 8216953bed
commit 665ec099a9

View File

@@ -245,6 +245,9 @@ def permission_revoke(request):
return render_to_response('generic_confirm.html', context, return render_to_response('generic_confirm.html', context,
context_instance=RequestContext(request)) context_instance=RequestContext(request))
from common.models import AnonymousUserSingleton
class Member(EncapsulatedObject): class Member(EncapsulatedObject):
source_object_name = u'member_object' source_object_name = u'member_object'
@@ -255,12 +258,14 @@ def _as_choice_list(items):
def get_role_members(role, separate=False): def get_role_members(role, separate=False):
user_ct = ContentType.objects.get(model='user') user_ct = ContentType.objects.get(model='user')
group_ct = ContentType.objects.get(model='group') group_ct = ContentType.objects.get(model='group')
anonymous = ContentType.objects.get(model='anonymoususersingleton')
users = role.members(filter_dict={'member_type': user_ct}) users = role.members(filter_dict={'member_type': user_ct})
groups = role.members(filter_dict={'member_type': group_ct}) groups = role.members(filter_dict={'member_type': group_ct})
anonymous = role.members(filter_dict={'member_type': anonymous})
if separate: if separate:
return users, groups return users, groups, anonymous
else: else:
members = [] members = []
@@ -270,18 +275,22 @@ def get_role_members(role, separate=False):
if groups: if groups:
members.append((_(u'Groups'), _as_choice_list(list(groups)))) members.append((_(u'Groups'), _as_choice_list(list(groups))))
if anonymous:
members.append((_(u'Special'), _as_choice_list(list(anonymous))))
return members return members
def get_non_role_members(role): def get_non_role_members(role):
#non members = all users - members - staff - super users #non members = all users - members - staff - super users
member_users, member_groups = get_role_members(role, separate=True) member_users, member_groups, member_anonymous = get_role_members(role, separate=True)
staff_users = User.objects.filter(is_staff=True) staff_users = User.objects.filter(is_staff=True)
super_users = User.objects.filter(is_superuser=True) super_users = User.objects.filter(is_superuser=True)
users = set(User.objects.all()) - set(member_users) - set(staff_users) - set(super_users) users = set(User.objects.all()) - set(member_users) - set(staff_users) - set(super_users)
groups = set(Group.objects.all()) - set(member_groups) groups = set(Group.objects.all()) - set(member_groups)
anonymous = set([AnonymousUserSingleton.objects.get()]) - set(member_anonymous)
non_members = [] non_members = []
if users: if users:
@@ -290,6 +299,11 @@ def get_non_role_members(role):
if groups: if groups:
non_members.append((_(u'Groups'), _as_choice_list(list(groups)))) non_members.append((_(u'Groups'), _as_choice_list(list(groups))))
if anonymous:
non_members.append((_(u'Special'), _as_choice_list(list(anonymous))))
#non_holder_list.append((_(u'Special'), _as_choice_list([AnonymousUserSingleton.objects.get()])))
return non_members return non_members