group_required decorator

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from django.contrib.auth.decorators import user_passes_test

def group_required(*group_names):
    """Requires user membership in at least one of the groups passed in."""
    def in_groups(u):
        if u.is_authenticated():
            if bool(u.groups.filter(name__in=group_names)) | u.is_superuser:
                return True
        return False
    return user_passes_test(in_groups)

More like this

  1. User groups template tag by davea 2 years, 6 months ago
  2. HTTP basic auth decorator by bthomas 5 years, 2 months ago
  3. User groups template tag by hijinks 4 years, 10 months ago
  4. anonymous_required decorator by yetty 9 months, 2 weeks ago
  5. is_staff decorator by munhitsu 5 years, 8 months ago

Comments

mapcuk (on February 25, 2010):

For using it in urls.py shoud write

urlpatterns = patterns('',
    url(r'^$',
        group_required(['root', 'manager'])(views.admin),
        name='admin'),
...

#

bradbeattie (on May 8, 2013):

Avoid a potentially unnecessary database hit by swapping the position of is_superuser and the groups.filter.

#

(Forgotten your password?)