Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
django-iam / apps.py
Size: Mime:
from django.apps import AppConfig
from django.utils.module_loading import autodiscover_modules

from .settings import IAMSettings
from .utils import override_perms


class IAMAppConfig(AppConfig):
    name = 'iam'
    verbose_name = "IAM"

    settings = IAMSettings()

    def ready(self):
        autodiscover_modules('rules')
        autodiscover_modules('roles')

        from .models import Role, RoleMember

        for model in (Role, RoleMember):
            perms = self.settings.perms[model.__name__]
            if perms is not None:
                override_perms(model, perms)

    @classmethod
    def give_default_access_perms_to(cls, role):
        cls.settings.access['RoleMember'].append(role)
        cls.settings.perms['RoleMember'] = role.perms.all
        cls.settings.perms['Role'] = {
            'view': role.is_member,
        }


__all__ = (
    'IAMAppConfig',
)