Ejemplo n.º 1
0
    def get_queryset(self):
        self.category_slug = self.kwargs.get('category_slug', 'all')
        all_category_slugs = settings_registry.get_registered_categories(
            features_enabled=get_licensed_features()).keys()
        for slug_to_delete in VERSION_SPECIFIC_CATEGORIES_TO_EXCLUDE[
                get_request_version(self.request)]:
            all_category_slugs.remove(slug_to_delete)
        if self.request.user.is_superuser or getattr(
                self.request.user, 'is_system_auditor', False):
            category_slugs = all_category_slugs
        else:
            category_slugs = {'user'}
        if self.category_slug not in all_category_slugs:
            raise Http404
        if self.category_slug not in category_slugs:
            raise PermissionDenied()

        registered_settings = settings_registry.get_registered_settings(
            category_slug=self.category_slug,
            read_only=False,
            features_enabled=get_licensed_features(),
            slugs_to_ignore=VERSION_SPECIFIC_CATEGORIES_TO_EXCLUDE[
                get_request_version(self.request)])
        if self.category_slug == 'user':
            return Setting.objects.filter(key__in=registered_settings,
                                          user=self.request.user)
        else:
            return Setting.objects.filter(key__in=registered_settings,
                                          user__isnull=True)
Ejemplo n.º 2
0
Archivo: views.py Proyecto: vin-c/awx
 def get_queryset(self):
     setting_categories = []
     categories = settings_registry.get_registered_categories()
     if self.request.user.is_superuser or self.request.user.is_system_auditor:
         pass  # categories = categories
     elif 'user' in categories:
         categories = {'user', _('User')}
     else:
         categories = {}
     for category_slug in sorted(categories.keys()):
         url = reverse('api:setting_singleton_detail',
                       kwargs={'category_slug': category_slug},
                       request=self.request)
         setting_categories.append(
             SettingCategory(url, category_slug, categories[category_slug]))
     return setting_categories
Ejemplo n.º 3
0
 def get_queryset(self):
     setting_categories = []
     categories = settings_registry.get_registered_categories(
         features_enabled=get_licensed_features())
     if self.request.user.is_superuser or self.request.user.is_system_auditor:
         pass  # categories = categories
     elif 'user' in categories:
         categories = {'user', _('User')}
     else:
         categories = {}
     for category_slug in sorted(categories.keys()):
         if category_slug in VERSION_SPECIFIC_CATEGORIES_TO_EXCLUDE[
                 get_request_version(self.request)]:
             continue
         url = reverse('api:setting_singleton_detail',
                       kwargs={'category_slug': category_slug},
                       request=self.request)
         setting_categories.append(
             SettingCategory(url, category_slug, categories[category_slug]))
     return setting_categories
Ejemplo n.º 4
0
    def handle(self, *args, **options):
        self.verbosity = int(options.get('verbosity', 1))
        self.dry_run = bool(options.get('dry_run', False))
        self.skip_errors = bool(options.get('skip_errors', False))
        self.no_comment = bool(options.get('no_comment', False))
        self.comment_only = bool(options.get('comment_only', False))
        self.backup_suffix = options.get('backup_suffix', '')
        self.categories = options.get('category', None) or ['all']
        self.style.HEADING = self.style.MIGRATE_HEADING
        self.style.LABEL = self.style.MIGRATE_LABEL
        self.style.OK = self.style.SQL_FIELD
        self.style.SKIP = self.style.WARNING
        self.style.VALUE = self.style.SQL_KEYWORD

        # Determine if any categories provided are invalid.
        category_slugs = []
        invalid_categories = []
        for category in self.categories:
            category_slug = slugify(category)
            if category_slug in settings_registry.get_registered_categories():
                if category_slug not in category_slugs:
                    category_slugs.append(category_slug)
            else:
                if category not in invalid_categories:
                    invalid_categories.append(category)
        if len(invalid_categories) == 1:
            raise CommandError('Invalid setting category: {}'.format(
                invalid_categories[0]))
        elif len(invalid_categories) > 1:
            raise CommandError('Invalid setting categories: {}'.format(
                ', '.join(invalid_categories)))

        # Build a list of all settings to be migrated.
        registered_settings = []
        for category_slug in category_slugs:
            for registered_setting in settings_registry.get_registered_settings(
                    category_slug=category_slug, read_only=False):
                if registered_setting not in registered_settings:
                    registered_settings.append(registered_setting)

        self._migrate_settings(registered_settings)
Ejemplo n.º 5
0
    def get_queryset(self):
        self.category_slug = self.kwargs.get('category_slug', 'all')
        all_category_slugs = list(
            settings_registry.get_registered_categories().keys())
        if self.request.user.is_superuser or getattr(
                self.request.user, 'is_system_auditor', False):
            category_slugs = all_category_slugs
        else:
            category_slugs = {'user'}
        if self.category_slug not in all_category_slugs:
            raise Http404
        if self.category_slug not in category_slugs:
            raise PermissionDenied()

        registered_settings = settings_registry.get_registered_settings(
            category_slug=self.category_slug, read_only=False)
        if self.category_slug == 'user':
            return Setting.objects.filter(key__in=registered_settings,
                                          user=self.request.user)
        else:
            return Setting.objects.filter(key__in=registered_settings,
                                          user__isnull=True)