Skip to content

Latest commit

 

History

History
41 lines (27 loc) · 1.38 KB

management_commands.rst

File metadata and controls

41 lines (27 loc) · 1.38 KB

Management commands

The library provide a Django command line to create or update new permission django.contrib.auth.Permission instances.

How to use it

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.

Use case

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()

  1. All models that django creates as a many to many relationship result.