Source code for controller.sentry.management.commands.loadpermissions

"""loadpermissions command."""
from itertools import chain

from django.conf import settings
from django.contrib.auth.models import Group, Permission
from django.core.management.base import BaseCommand


[docs]class Command(BaseCommand): """loadpermissions command.""" help = "Set default permissions." # noqa: A003
[docs] def handle(self, *args, **options): """Handle the loadpermissions command. This command set the default permissions of groups * Owner (all access) * Admin (all access on sentry app) * Developer (view sentry object and use developer actions) * Viewer (view sentry object) """ owner, _ = Group.objects.get_or_create(name="Owner") admin, _ = Group.objects.get_or_create(name="Admin") developer, _ = Group.objects.get_or_create(name=settings.DEVELOPER_GROUP) viewer, _ = Group.objects.get_or_create(name="Viewer") owner.permissions.set(Permission.objects.all()) admin.permissions.set(Permission.objects.filter(content_type__app_label="sentry")) view_permission = Permission.objects.filter(codename__contains="view_", content_type__app_label="sentry") developer.permissions.set( chain(view_permission.all(), Permission.objects.filter(codename__in=settings.DEVELOPER_ACTIONS)) ) viewer.permissions.set(view_permission.all())