2011年9月6日火曜日

permission name取得

auth->groupでもいいけれど

python shell
>>> from django.contrib.auth.models import Permission
>>> for item in Permission.objects.all():
...   print item.name
...
Can add log entry
...

て思っていたけれど。@permission_requiredが引くのはcodenameですた。
×...   print item.name
○ ...   print item.codename

それと、 permission_requiredで引けるのは、1個だけ。
でも複数のがほしいよな。add, change, delete単体でpermission与えるのより、全部与えるほうが多いような気がする。
えっ。作れって、そうさせて頂きます。

と思ったら。似たようなのがここにあった。

ということで、
#-*- coding:utf-8 -*-

from django.contrib.auth.decorators import user_passes_test

def require_all_permissions(perm_list):
    """
    A decorator which checks user has all of the given permissions.
    """
    def test_func(user):
        return user.has_perms(perm_list) 
    return user_passes_test(test_func)
 どうでしょう。

0 件のコメント:

コメントを投稿