Коммит fe2a192f создал по автору Anton Medvedev's avatar Anton Medvedev
Просмотр файлов

Merge branch 'Leonov12' into 'main'

#53 Wagtail-grapple, #54 JWT-auth (in general),

See merge request teknokomo/universo-monorepo!16
владельцы 3792216a ddceabea
Нет предварительного просмотра для этого типа файлов
Нет предварительного просмотра для этого типа файлов
# import graphene import graphene
# import graphql_jwt import graphql_jwt
from graphene_django import DjangoObjectType
from django.contrib.auth import get_user_model
# class Mutation(graphene.ObjectType): from graphql_jwt.decorators import login_required
# token_auth = graphql_jwt.ObtainJSONWebToken.Field()
# verify_token = graphql_jwt.Verify.Field() class AppUserType(DjangoObjectType):
# refresh_token = graphql_jwt.Refresh.Field() class Meta:
model = get_user_model()
exclude = ('password', )
# schema = graphene.Schema(mutation=Mutation)
class Query(graphene.ObjectType):
import graphene app_users=graphene.List(AppUserType)
import graphql_jwt logget_in = graphene.Field(AppUserType)
from wagtail.api.v2.views import PagesAPIViewSet
from wagtail.api.v2.router import WagtailAPIRouter def resolve_app_users(self, info):
from wagtail.api.v2.utils import BadRequestError return get_user_model().objects.all()
from wagtail.models import Page
from wagtail.users.models import UserProfile @login_required
from graphene_django import DjangoObjectType def resolve_logged_in(self, info):
return info.context.user
class UserType(DjangoObjectType):
class Meta: class CreateAppUser(graphene.Mutation):
model = UserProfile app_user = graphene.Field(AppUserType)
fields = "__all__"
class Arguments:
class PageType(DjangoObjectType): email = graphene.String()
class Meta: username = graphene.String()
model = Page password = graphene.String()
fields = "__all__"
def mutate(self, info, email, username, password):
app_user = get_user_model()
class ObtainJSONWebToken(graphql_jwt.JSONWebTokenMutation): new_user = app_user(email=email,username=username)
user = graphene.Field(UserType) new_user.set_password(password)
new_user.save()
@classmethod return CreateAppUser(app_user=new_user)
def resolve(cls, root, info, **kwargs):
return cls(user=info.context.user)
# class RefreshMutation(graphql_jwt.RefreshMutation):
# user = graphene.Field(UserType) class Mutation(graphene.ObjectType):
create_app_user = CreateAppUser.Field()
# @classmethod token_auth = graphql_jwt.ObtainJSONWebToken.Field()
# def resolve(cls, root, info, **kwargs): verify_token = graphql_jwt.Verify.Field()
# return cls(user=info.context.user) refresh_token = graphql_jwt.Refresh.Field()
# class RevokeMutation(graphql_jwt.RevokeMutation):
# user = graphene.Field(UserType) schema = graphene.Schema(query=Query, mutation=Mutation)
\ No newline at end of file
# @classmethod
# def resolve(cls, root, info, **kwargs):
# return cls(user=info.context.user)
class Mutation(graphene.ObjectType):
token_auth = ObtainJSONWebToken.Field()
verify_token = graphql_jwt.Verify.Field()
# refresh_token = RefreshMutation.Field()
# revoke_token = RevokeMutation.Field()
router = WagtailAPIRouter('wagtailapi')
router.register_endpoint('pages', PagesAPIViewSet)
class Query(graphene.ObjectType):
pages = graphene.List(PageType)
def resolve_pages(self, info):
return Page.objects.live().public()
schema = graphene.Schema(query=Query, mutation=Mutation)
# альтернативная тренировочная версия, удалить этот файл пред выгрузкой!!!
# import graphene
# import graphql_jwt
# class Mutation(graphene.ObjectType):
# token_auth = graphql_jwt.ObtainJSONWebToken.Field()
# verify_token = graphql_jwt.Verify.Field()
# refresh_token = graphql_jwt.Refresh.Field()
# schema = graphene.Schema(mutation=Mutation)
import graphene
import graphql_jwt
from wagtail.api.v2.views import PagesAPIViewSet
from wagtail.api.v2.router import WagtailAPIRouter
from wagtail.api.v2.utils import BadRequestError
from wagtail.models import Page
from wagtail.users.models import UserProfile
from graphene_django import DjangoObjectType
# from graphql_jwt.refresh_token.shortcuts import RefreshTokenMutation
class UserType(DjangoObjectType):
class Meta:
model = UserProfile
fields = "__all__"
class PageType(DjangoObjectType):
class Meta:
model = Page
fields = "__all__"
class ObtainJSONWebToken(graphql_jwt.JSONWebTokenMutation):
user = graphene.Field(UserType)
@classmethod
def resolve(cls, root, info, **kwargs):
return cls(user=info.context.user)
# class RefreshMutation(graphql_jwt.Refresh):
# user = graphene.Field(UserType)
# @classmethod
# def resolve(cls, root, info, **kwargs):
# return cls(user=info.context.user)
# class RevokeMutation(graphql_jwt.RevokeMutation):
# user = graphene.Field(UserType)
# @classmethod
# def resolve(cls, root, info, **kwargs):
# return cls(user=info.context.user)
class Mutation(graphene.ObjectType):
token_auth = ObtainJSONWebToken.Field()
verify_token = graphql_jwt.Verify.Field()
# refresh_token = RefreshMutation.Field()
refresh_token = graphql_jwt.Refresh.Field()
# revoke_token = RevokeMutation.Field()
router = WagtailAPIRouter('wagtailapi')
router.register_endpoint('pages', PagesAPIViewSet)
class Query(graphene.ObjectType):
pages = graphene.List(PageType)
def resolve_pages(self, info):
return Page.objects.live().public()
schema = graphene.Schema(query=Query, mutation=Mutation)
Нет предварительного просмотра для этого типа файлов
...@@ -51,6 +51,7 @@ INSTALLED_APPS = [ ...@@ -51,6 +51,7 @@ INSTALLED_APPS = [
"graphene_django", "graphene_django",
'graphql_jwt', 'graphql_jwt',
"graphql_jwt.refresh_token",
] ]
MIDDLEWARE = [ MIDDLEWARE = [
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать