mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-18 13:06:30 -06:00
9856 user and group
This commit is contained in:
parent
3f2c21f005
commit
eceac90b1c
@ -1,18 +1,18 @@
|
||||
import strawberry
|
||||
from strawberry_django.optimizer import DjangoOptimizerExtension
|
||||
from strawberry.schema.config import StrawberryConfig
|
||||
from users.graphql.schema import UsersQuery
|
||||
|
||||
|
||||
@strawberry.type
|
||||
class User:
|
||||
name: str
|
||||
age: int
|
||||
class Query(UsersQuery):
|
||||
pass
|
||||
|
||||
|
||||
@strawberry.type
|
||||
class Query:
|
||||
@strawberry.field
|
||||
def user(self) -> User:
|
||||
return User(name="Patrick", age=100)
|
||||
|
||||
|
||||
schema = strawberry.Schema(query=Query)
|
||||
schema = strawberry.Schema(
|
||||
query=Query,
|
||||
config=StrawberryConfig(auto_camel_case=False),
|
||||
extensions=[
|
||||
DjangoOptimizerExtension,
|
||||
]
|
||||
)
|
||||
|
@ -1,4 +1,5 @@
|
||||
import django_filters
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group
|
||||
from django.db.models import Q
|
||||
|
@ -1,21 +1,16 @@
|
||||
import graphene
|
||||
from typing import List
|
||||
import strawberry
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group
|
||||
from netbox.graphql.fields import ObjectField, ObjectListField
|
||||
from .types import *
|
||||
from utilities.graphql_optimizer import gql_query_optimizer
|
||||
|
||||
|
||||
class UsersQuery(graphene.ObjectType):
|
||||
group = ObjectField(GroupType)
|
||||
group_list = ObjectListField(GroupType)
|
||||
@strawberry.type
|
||||
class UsersQuery:
|
||||
group: GroupType = strawberry.django.field()
|
||||
group_list: List[GroupType] = strawberry.django.field()
|
||||
|
||||
def resolve_group_list(root, info, **kwargs):
|
||||
return gql_query_optimizer(Group.objects.all(), info)
|
||||
|
||||
user = ObjectField(UserType)
|
||||
user_list = ObjectListField(UserType)
|
||||
|
||||
def resolve_user_list(root, info, **kwargs):
|
||||
return gql_query_optimizer(get_user_model().objects.all(), info)
|
||||
user: UserType = strawberry.django.field()
|
||||
user_list: List[UserType] = strawberry.django.field()
|
||||
|
@ -1,9 +1,10 @@
|
||||
import strawberry
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group
|
||||
from graphene_django import DjangoObjectType
|
||||
|
||||
from strawberry import auto
|
||||
from users import filtersets
|
||||
from utilities.querysets import RestrictedQuerySet
|
||||
from .filters import *
|
||||
|
||||
__all__ = (
|
||||
'GroupType',
|
||||
@ -11,28 +12,26 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
class GroupType(DjangoObjectType):
|
||||
|
||||
class Meta:
|
||||
model = Group
|
||||
fields = ('id', 'name')
|
||||
filterset_class = filtersets.GroupFilterSet
|
||||
|
||||
@strawberry.django.type(
|
||||
Group,
|
||||
fields=['id', 'name'],
|
||||
filters=GroupFilter
|
||||
)
|
||||
class GroupType:
|
||||
@classmethod
|
||||
def get_queryset(cls, queryset, info):
|
||||
return RestrictedQuerySet(model=Group).restrict(info.context.user, 'view')
|
||||
def get_queryset(cls, queryset, info, **kwargs):
|
||||
return RestrictedQuerySet(model=Group).restrict(info.context.request.user, 'view')
|
||||
|
||||
|
||||
class UserType(DjangoObjectType):
|
||||
|
||||
class Meta:
|
||||
model = get_user_model()
|
||||
fields = (
|
||||
'id', 'username', 'password', 'first_name', 'last_name', 'email', 'is_staff', 'is_active', 'date_joined',
|
||||
'groups',
|
||||
)
|
||||
filterset_class = filtersets.UserFilterSet
|
||||
|
||||
@strawberry.django.type(
|
||||
get_user_model(),
|
||||
fields=[
|
||||
'id', 'username', 'password', 'first_name', 'last_name', 'email', 'is_staff',
|
||||
'is_active', 'date_joined', 'groups',
|
||||
],
|
||||
filters=UserFilter
|
||||
)
|
||||
class UserType:
|
||||
@classmethod
|
||||
def get_queryset(cls, queryset, info):
|
||||
return RestrictedQuerySet(model=get_user_model()).restrict(info.context.user, 'view')
|
||||
def get_queryset(cls, queryset, info, **kwargs):
|
||||
return RestrictedQuerySet(model=get_user_model()).restrict(info.context.request.user, 'view')
|
||||
|
Loading…
Reference in New Issue
Block a user