権限周りをプログラムでいじれると何かと便利
Djangoでは既存の機能でユーザーの権限をグループで管理する機能が付いていますが、これが何かと便利です。
グループ毎に、使わせる使わせないの制御が出来るので、良く使う機能の1つです。
今回は、テストケースを生成する上で、プログラム内でユーザーに付加する必要があり、少し調べる必要が出てきました。
どのようにグループに権限を追加するか
group permission
自体は auth model
の Group
に紐付いており、 ManyToMany
で定義されているテーブルです。
なので、以下の通り、 Group
を呼び出した後で、permissions
に add
することで追加することが出来るようになりました。
from django.contrib.auth.models import Group, Permission perm = Permission.objects.get(codename='change_something') group = Group.objects.get(pk=1) group.permissions.add(perm)
プログラム内で権限を付与出来るようになり、テスト時のユーザーに最初から権限を付与しておく必要がなくなりました。
ユーザーのデータ自体に後から権限を付けてしまうと、他のテスト自体に影響してしまったりするので、1つのテストケース内で権限を付与出来るというのは有り難いですね。