Exemplo n.º 1
0
 def test_permissions_for_app(self):
     """
     This only tests if an app that doesn't belongs or exists in
     booktype.apps packages, will return an empty list
     """
     EMPTY = {}
     bad_app_name = 'foo_meh_book'
     self.assertEqual(permissions.permissions_for_app(bad_app_name), EMPTY,
                      "This should return an empty list")
Exemplo n.º 2
0
 def test_permissions_for_app(self):
     """
     This only tests if an app that doesn't belongs or exists in
     booktype.apps packages, will return an empty list
     """
     EMPTY = {}
     bad_app_name = 'foo_meh_book'
     self.assertEqual(
         permissions.permissions_for_app(bad_app_name),
         EMPTY,
         "This should return an empty list"
     )
Exemplo n.º 3
0
 def label(self):
     """
     Checks if description has an internalized string and returns it.
     Otherwise, it returns the description stored in DB
     """
     from booktype.utils.permissions import permissions_for_app
     app_perms = permissions_for_app(self.app_name)
     if 'permissions' in app_perms:
         for code_name, desc in app_perms.get('permissions'):
             if code_name == self.name:
                 return desc
     return u'%s' % self.description
Exemplo n.º 4
0
    def handle(self, *args, **options):
        saved_perms = []

        for app_name in settings.INSTALLED_APPS:
            app_perms = permissions_for_app(app_name)
            saved_perms += create_permissions(app_name, app_perms)

        saved_perms_ids = [p.pk for p in saved_perms]
        orphan_perms = Permission.objects.exclude(id__in=saved_perms_ids)

        if options['delete_orphans']:
            orphan_perms.delete()
            print BOLD_ON + "All undeclared permissions has been deleted." + BOLD_OFF
        else:
            if orphan_perms.count() > 0:
                suggestion = (
                    "There are %s undeclared permissions. "
                    "To delete them use: \n"
                    "./manage.py update_permissions --delete-orphans")
                print BOLD_ON + suggestion % orphan_perms.count() + BOLD_OFF
Exemplo n.º 5
0
    def handle(self, *args, **options):
        saved_perms = []

        for app_name in settings.INSTALLED_APPS:
            app_perms = permissions_for_app(app_name)
            saved_perms += create_permissions(app_name, app_perms)

        saved_perms_ids = [p.pk for p in saved_perms]
        orphan_perms = Permission.objects.exclude(id__in=saved_perms_ids)

        if options['delete_orphans']:
            orphan_perms.delete()
            print BOLD_ON + "All undeclared permissions has been deleted." + BOLD_OFF
        else:
            if orphan_perms.count() > 0:
                suggestion = (
                    "There are %s undeclared permissions. "
                    "To delete them use: \n"
                    "./manage.py update_permissions --delete-orphans"
                )
                print BOLD_ON + suggestion % orphan_perms.count() + BOLD_OFF
Exemplo n.º 6
0
def django_db_setup(django_db_setup, django_db_blocker):
    with django_db_blocker.unblock():
        # update_permissions
        for app_name in settings.INSTALLED_APPS:
            app_perms = permissions_for_app(app_name)
            create_permissions(app_name, app_perms, stdout=False)

        # update_default_roles
        for role_name, perms in settings.BOOKTYPE_DEFAULT_ROLES.items():
            # check if there any existing default role already in configuration
            key = 'DEFAULT_ROLE_%s' % role_name
            role_name = config.get_configuration(key, role_name)
            role, created = Role.objects.get_or_create(name=role_name)

            if created:
                role.description = _('system default role')
                role.save()

            for perm in perms:
                app, code_name = perm.split('.')
                perm = Permission.objects.get(app_name=app, name=code_name)
                role.permissions.add(perm)
Exemplo n.º 7
0
def django_db_setup(django_db_setup, django_db_blocker):
    with django_db_blocker.unblock():
        # update_permissions
        for app_name in settings.INSTALLED_APPS:
            app_perms = permissions_for_app(app_name)
            create_permissions(app_name, app_perms, stdout=False)

        # update_default_roles
        for role_name, perms in settings.BOOKTYPE_DEFAULT_ROLES.items():
            # check if there any existing default role already in configuration
            key = 'DEFAULT_ROLE_%s' % role_name
            role_name = config.get_configuration(key, role_name)
            role, created = Role.objects.get_or_create(name=role_name)

            if created:
                role.description = _('system default role')
                role.save()

            for perm in perms:
                app, code_name = perm.split('.')
                perm = Permission.objects.get(app_name=app, name=code_name)
                role.permissions.add(perm)
Exemplo n.º 8
0
 def _update_permissions(self):
     for app_name in settings.INSTALLED_APPS:
         app_perms = permissions_for_app(app_name)
         self._app_permissions.append(
             create_permissions(app_name, app_perms, stdout=False))
Exemplo n.º 9
0
 def _update_permissions(self):
     for app_name in settings.INSTALLED_APPS:
         app_perms = permissions_for_app(app_name)
         self._app_permissions.append(
             create_permissions(app_name, app_perms, stdout=False)
         )