from django.contrib.auth.models import Permission def set_permissions(subject, permission_filters): if subject is None or permission_filters is None: return subject.clear() for permission_filter in permission_filters: if "*" in permission_filter: permission_filter_regex = "^" + permission_filter.replace("*", ".*") + "$" permissions = Permission.objects.filter(codename__iregex=permission_filter_regex) print(" ⚿ Granting", permissions.count(), "permissions matching '" + permission_filter + "'") else: permissions = Permission.objects.filter(codename=permission_filter) print(" ⚿ Granting permission", permission_filter) for permission in permissions: subject.add(permission)