From 93ad822457dc775fb2d98493fa81740f7cec3d90 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Mon, 22 Oct 2018 16:47:55 +0200 Subject: [PATCH] Add logout functionality Remove unused imports Add file header Check response remove file headers --- client/src/components/UserWidget.vue | 23 +++++++++++++++++++ .../src/graphql/gql/mutations/logoutUser.gql | 5 ++++ server/api/schema.py | 4 +++- server/core/schema/__init__.py | 0 server/core/schema/mutations/__init__.py | 0 server/core/schema/mutations/logout.py | 23 +++++++++++++++++++ server/core/schema/mutations/main.py | 14 +++++++++++ 7 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 client/src/graphql/gql/mutations/logoutUser.gql create mode 100644 server/core/schema/__init__.py create mode 100644 server/core/schema/mutations/__init__.py create mode 100644 server/core/schema/mutations/logout.py create mode 100644 server/core/schema/mutations/main.py diff --git a/client/src/components/UserWidget.vue b/client/src/components/UserWidget.vue index 2d923914..f44b7a10 100644 --- a/client/src/components/UserWidget.vue +++ b/client/src/components/UserWidget.vue @@ -3,17 +3,28 @@ {{firstName}} {{lastName}} {{date}} + @@ -36,6 +47,18 @@ font-family: $sans-serif-font-family; } + &__logout { + font-family: $sans-serif-font-family; + line-height: 16px; + margin: 0 15px 0 20px; + background: none; + color: inherit; + border: none; + padding: 0; + cursor: pointer; + outline: inherit; + } + &__avatar { width: 30px; height: 30px; diff --git a/client/src/graphql/gql/mutations/logoutUser.gql b/client/src/graphql/gql/mutations/logoutUser.gql new file mode 100644 index 00000000..efdee6ba --- /dev/null +++ b/client/src/graphql/gql/mutations/logoutUser.gql @@ -0,0 +1,5 @@ +mutation { + logout { + success + } +} diff --git a/server/api/schema.py b/server/api/schema.py index 14aaabe9..3a6287eb 100644 --- a/server/api/schema.py +++ b/server/api/schema.py @@ -9,6 +9,7 @@ from assignments.schema.mutations import AssignmentMutations from assignments.schema.queries import AssignmentsQuery, StudentSubmissionQuery from books.schema.mutations.main import BookMutations from books.schema.queries import BookQuery +from core.schema.mutations.main import CoreMutations from objectives.mutations import ObjectiveMutations from objectives.schema import ObjectivesQuery from rooms.mutations import RoomMutations @@ -24,7 +25,8 @@ class Query(UsersQuery, RoomsQuery, ObjectivesQuery, BookQuery, AssignmentsQuery debug = graphene.Field(DjangoDebug, name='__debug') -class Mutation(BookMutations, RoomMutations, AssignmentMutations, ObjectiveMutations, graphene.ObjectType): +class Mutation(BookMutations, RoomMutations, AssignmentMutations, ObjectiveMutations, CoreMutations, + graphene.ObjectType): if settings.DEBUG: debug = graphene.Field(DjangoDebug, name='__debug') diff --git a/server/core/schema/__init__.py b/server/core/schema/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/server/core/schema/mutations/__init__.py b/server/core/schema/mutations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/server/core/schema/mutations/logout.py b/server/core/schema/mutations/logout.py new file mode 100644 index 00000000..0940e8d6 --- /dev/null +++ b/server/core/schema/mutations/logout.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# +# ITerativ GmbH +# http://www.iterativ.ch/ +# +# Copyright (c) 2018 ITerativ GmbH. All rights reserved. +# +# Created on 22.10.18 +# @author: chrigu + +import graphene +from django.contrib.auth import logout + + +class Logout(graphene.Mutation): + success = graphene.Boolean() + + def mutate(self, info, **kwargs): + try: + logout(info.context) + return Logout(success=True) + except Exception: + return Logout(success=False) diff --git a/server/core/schema/mutations/main.py b/server/core/schema/mutations/main.py new file mode 100644 index 00000000..b87afabe --- /dev/null +++ b/server/core/schema/mutations/main.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# +# ITerativ GmbH +# http://www.iterativ.ch/ +# +# Copyright (c) 2018 ITerativ GmbH. All rights reserved. +# +# Created on 22.10.18 +# @author: chrigu +from core.schema.mutations.logout import Logout + + +class CoreMutations(object): + logout = Logout.Field()