Add anonymous user support to the role member add and remove views
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user