The library provide a Django command line to create or update new permission django.contrib.auth.Permission
instances.
By default the command creates a new Permission
if it does not exist. Otherwise it will update it. :
python manage.py create_update_permissions -n my_custom_permission_1 my_custom_permission_2
This execution will create/update all permissions defined on -n
parameter for each non auto-created1 model of each registered application.
If you want to filter the applications and/or models for creation/update you can use -a
and/or -m
respective.
This feature could be very useful to configure your object permission according those Django permissions. :
@register(MyModel)
class MyModelAuthority(ObjectAuthorization):
def has_view_permission(self, user, obj):
codename = '{}.{}_{}'.format(obj._meta.app_label, 'my_custom_permission_1', obj._meta.model_name))
return codename in user.get_all_permissions()
All models that django creates as a many to many relationship result.↩