Login

Check Group Membership Filter

Author:
Mogga
Posted:
July 18, 2008
Language:
Python
Version:
.96
Tags:
template filter group
Score:
-3 (after 3 ratings)

Derived from 847 but allows for checks against multiple groups...

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from django import template
from django.utils.safestring import SafeUnicode

register=template.Library()

@register.filter
def in_group(user, group):
	"""Returns True/False if the user is in the given group(s).
	Usage::
		{% if user|in_group:"Friends" %}
		or
		{% if user|in_group:"Friends,Enemies" %}
		...
		{% endif %}
	You can specify a single group or comma-delimited list.
	No white space allowed.
	"""
	import re
	if re.search(',', group): group_list = re.sub('\s+','',group).split(',')
	elif re.search(' ', group): group_list = group.split()
	else: group_list = [group]
	user_groups = []
	for group in user.groups.all(): user_groups.append(str(group.name))
	if filter(lambda x:x in user_groups, group_list): return True
	else: return False
in_group.is_safe = True

More like this

  1. group_required decorator by msanders 5 years, 7 months ago
  2. User group template tag by jdriscoll 7 years, 10 months ago
  3. User groups template tag with "else" block support (Allow checking several groups) by br0th3r 2 years, 11 months ago
  4. User groups template tag by davea 3 years, 6 months ago
  5. in_group template filter by whiteinge 6 years, 9 months ago

Comments

Please login first before commenting.