當前位置: 首頁>>代碼示例>>Python>>正文


Python shortcuts.get_objects_for_user方法代碼示例

本文整理匯總了Python中guardian.shortcuts.get_objects_for_user方法的典型用法代碼示例。如果您正苦於以下問題:Python shortcuts.get_objects_for_user方法的具體用法?Python shortcuts.get_objects_for_user怎麽用?Python shortcuts.get_objects_for_user使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在guardian.shortcuts的用法示例。


在下文中一共展示了shortcuts.get_objects_for_user方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: get_queryset

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def get_queryset(self):
        """
        Get the list of items for this view
        based on user's view_%(model_name)s permissions.
        """

        # Sometime there is no model object
        model = getattr(self, 'model', None)
        self.model = model or getattr(self.queryset, 'model', None)

        if self.request is not None and self.model is not None:
            kwargs = {
                'app_label': self.model._meta.app_label,
                # module_name is now named model_name in django 1.8
                'model_name': self.model._meta.model_name
            }
            perms = ['%(app_label)s.view_%(model_name)s' % kwargs]
            return get_objects_for_user(self.request.user, perms, self.model)

        if self.model is not None:
            return self.model._default_manager.all()

        raise ImproperlyConfigured("'%s' must define 'queryset' or 'model'"
                                   % self.__class__.__name__) 
開發者ID:awemulya,項目名稱:kobo-predict,代碼行數:26,代碼來源:view_permission_mixin.py

示例2: project_search

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def project_search(request):
    if request.method == "POST":
        project_name = request.POST.get('project_name')
        person_name = request.POST.get('person_name')
        index = int(request.POST.get('index'))
        if len(project_name) == 0 and len(person_name) == 0:
            return JsonResponse(get_ajax_msg(0, 0, '搜索條件無效'))
        else:
            projects = ProjectInfo.objects.all()
            if len(project_name) > 0:
                projects = projects.filter(project_name__contains=project_name)
            if len(person_name) > 0:
                projects = projects.filter(responsible_name__contains=person_name)
        if projects is None:
            return JsonResponse(get_ajax_msg(0, 0, '查詢出錯'))
        objects = get_objects_for_user(request.user, AUTH_VIEW, projects)  # 根據用戶權限篩選項目對象
        projects = pagination_for_objects(objects, index)
        count = objects.count()
        data = dataToJson([model_to_dict(i) for i in projects])
        return JsonResponse(get_ajax_msg(1, 1, '搜索成功', {'projects': data, 'count': count, 'currPage': index})) 
開發者ID:JoyMobileDevelopmentTeam,項目名稱:Joy_QA_Platform,代碼行數:22,代碼來源:operation_project.py

示例3: list

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def list(self, request, collection, *args, **kwargs):
        """
        return experiments for the collection that the user has permissions for
        Args:
            request: DRF request
            collection : Collection name
            *args:
            **kwargs:

        Returns: Experiments that user has view permissions on and are not marked for deletion

        """
        collection_obj = Collection.objects.get(name=collection)
        all_experiments = get_objects_for_user(request.user, 'read', klass=Experiment)\
            .exclude(to_be_deleted__isnull=False)
        experiments = all_experiments.filter(collection=collection_obj)
        data = {"experiments": [experiment.name for experiment in experiments]}
        return Response(data) 
開發者ID:jhuapl-boss,項目名稱:boss,代碼行數:20,代碼來源:views_resource.py

示例4: get_queryset

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def get_queryset(self):
        user = self.request.user
        partner = self.request.site.partner

        if user.is_staff:
            return serializers.OrganizationSerializer.prefetch_queryset(partner=partner)
        else:
            organizations = get_objects_for_user(
                user,
                OrganizationExtension.VIEW_COURSE,
                OrganizationExtension,
                use_groups=True,
                with_superuser=False
            ).values_list('organization')
            orgs_queryset = serializers.OrganizationSerializer.prefetch_queryset(partner=partner).filter(
                pk__in=organizations
            )
            return orgs_queryset 
開發者ID:edx,項目名稱:course-discovery,代碼行數:20,代碼來源:organizations.py

示例5: apply_filters

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def apply_filters(self, request, applicable_filters):
        permission = applicable_filters.pop('permission', None)
        # NOTE: We change this filter name from type to geom_type because it
        # overrides geonode type filter(vector,raster)
        layer_geom_type = applicable_filters.pop('geom_type', None)
        filtered = super(LayerFilterExtensionResource, self).apply_filters(
            request, applicable_filters)
        if layer_geom_type:
            filtered = filtered.filter(
                attribute_set__attribute_type__icontains=layer_geom_type)
        if permission is not None:
            try:
                permitted_ids = get_objects_for_user(request.user,
                                                     permission).values('id')
            except BaseException:
                permitted_ids = get_objects_for_user(
                    request.user, permission, klass=filtered).values('id')
            filtered = filtered.filter(id__in=permitted_ids)

        return filtered 
開發者ID:cartologic,項目名稱:cartoview,代碼行數:22,代碼來源:rest.py

示例6: cartoview_processor

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def cartoview_processor(request):
    permitted = get_objects_for_user(request.user,
                                     'base.view_resourcebase')
    cartoview_counters = {
        "apps": App.objects.count(),
        "app_instances": AppInstance.objects.filter(id__in=permitted).count(),
        "maps": Map.objects.filter(id__in=permitted).count(),
        "layers": Layer.objects.filter(id__in=permitted).count(),
        "users": Profile.objects.exclude(username="AnonymousUser").count(),
        "groups": Group.objects.exclude(name="anonymous").count()
    }

    defaults = {
        'apps': App.objects.all().order_by('order'),
        'CARTOVIEW_VERSION': get_version(__version__),
        'APPS_MENU': settings.APPS_MENU,
        'apps_instance_count': AppInstance.objects.all().count(),
        "cartoview_counters": cartoview_counters,
        'instances': AppInstance.objects.all().order_by('app__order')[:5]
    }
    return defaults 
開發者ID:cartologic,項目名稱:cartoview,代碼行數:23,代碼來源:context_processors.py

示例7: for_user

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def for_user(self, user, perms, any_perm=False, with_superuser=False):
        """Get a queryset filtered by perms for the user.

        :param user: the user itself
        :param perms: a string or list of perms to check for
        :param any_perm: if any perm or all perms should be cosidered
        :param with_superuser: if a superuser should skip the checks
        """
        if not has_guardian:
            return self.all()

        perms = [perms] if isinstance(perms, str) else perms

        return get_objects_for_user(
            user,
            perms,
            klass=self.model,
            any_perm=any_perm,
            with_superuser=with_superuser,
        ) 
開發者ID:0soft,項目名稱:graphene-django-plus,代碼行數:22,代碼來源:models.py

示例8: filter_queryset

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def filter_queryset(self, request, queryset, view):
        # We want to defer this import until run-time, rather than import-time.
        # See https://github.com/encode/django-rest-framework/issues/4608
        # (Also see #1624 for why we need to make this import explicitly)
        from guardian.shortcuts import get_objects_for_user

        extra = {}
        user = request.user
        model_cls = queryset.model
        kwargs = {
            'app_label': model_cls._meta.app_label,
            'model_name': model_cls._meta.model_name
        }
        permission = self.perm_format % kwargs
        if tuple(guardian.VERSION) >= (1, 3):
            # Maintain behavior compatibility with versions prior to 1.3
            extra = {'accept_global_perms': False}
        else:
            extra = {}
        return get_objects_for_user(user, permission, queryset, **extra) 
開發者ID:BeanWei,項目名稱:Dailyfresh-B2C,代碼行數:22,代碼來源:filters.py

示例9: filter_owners

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def filter_owners(self, queryset, name, value):
        """Filter queryset by owner's id."""
        try:
            user = user_model.objects.get(pk=value)
        except user_model.DoesNotExist:
            return queryset.none()

        return get_objects_for_user(
            user, self.owner_permission, queryset, with_superuser=False
        ) 
開發者ID:genialis,項目名稱:resolwe,代碼行數:12,代碼來源:filters.py

示例10: filter_owners_name

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def filter_owners_name(self, queryset, name, value):
        """Filter queryset by owner's name."""
        result = queryset.model.objects.none()
        user_subquery = self._get_user_subquery(value)
        for user in user_subquery:
            result = result.union(
                get_objects_for_user(
                    user, self.owner_permission, queryset, with_superuser=False
                )
            )

        # Union can no longer be filtered, so we have to create a new queryset
        # for following filters.
        return result.model.objects.filter(pk__in=Subquery(result.values("pk"))) 
開發者ID:genialis,項目名稱:resolwe,代碼行數:16,代碼來源:filters.py

示例11: list_keys

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def list_keys(request):
    """View to list all SSH keys for the logged-in user."""
    ssh_keys = get_objects_for_user(
        request.user,
        "keys.view_sshkey",
        SSHKey.objects.all().order_by("-created_at"),
        use_groups=False,
        with_superuser=False,
    )
    context = {"ssh_keys": ssh_keys}
    return render(request, "atmo/keys/list.html", context) 
開發者ID:mozilla,項目名稱:telemetry-analysis-service,代碼行數:13,代碼來源:views.py

示例12: get_queryset

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def get_queryset(self, *args, **kwargs):
        """
        Gets the set of ``ObservationRecord`` objects associated with the targets that the user is authorized to view.

        :returns: set of ObservationRecords
        :rtype: QuerySet
        """
        if settings.TARGET_PERMISSIONS_ONLY:
            return ObservationRecord.objects.filter(
                target__in=get_objects_for_user(self.request.user, 'tom_targets.view_target')
            )
        else:
            return get_objects_for_user(self.request.user, 'tom_observations.view_observationrecord') 
開發者ID:TOMToolkit,項目名稱:tom_base,代碼行數:15,代碼來源:views.py

示例13: observation_list

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def observation_list(context, target=None):
    """
    Displays a list of all observations in the TOM, limited to an individual target if specified.
    """
    if target:
        if settings.TARGET_PERMISSIONS_ONLY:
            observations = target.observationrecord_set.all()
        else:
            observations = get_objects_for_user(
                                context['request'].user,
                                'tom_observations.view_observationrecord'
                            ).filter(target=target)
    else:
        observations = ObservationRecord.objects.all().order_by('-created')
    return {'observations': observations} 
開發者ID:TOMToolkit,項目名稱:tom_base,代碼行數:17,代碼來源:observation_extras.py

示例14: get_queryset

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def get_queryset(self, *args, **kwargs):
        """
        Returns the queryset that will be used to look up the Target by limiting the result to targets that the user is
        authorized to modify.

        :returns: Set of targets
        :rtype: QuerySet
        """
        return get_objects_for_user(self.request.user, 'tom_targets.change_target') 
開發者ID:TOMToolkit,項目名稱:tom_base,代碼行數:11,代碼來源:views.py

示例15: recent_targets

# 需要導入模塊: from guardian import shortcuts [as 別名]
# 或者: from guardian.shortcuts import get_objects_for_user [as 別名]
def recent_targets(context, limit=10):
    """
    Displays a list of the most recently created targets in the TOM up to the given limit, or 10 if not specified.
    """
    user = context['request'].user
    return {'targets': get_objects_for_user(user, 'tom_targets.view_target').order_by('-created')[:limit]} 
開發者ID:TOMToolkit,項目名稱:tom_base,代碼行數:8,代碼來源:targets_extras.py


注:本文中的guardian.shortcuts.get_objects_for_user方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。