Skip to content
Snippets Groups Projects
Verified Commit 44a1be5c authored by Mark's avatar Mark
Browse files

Add removeRoleFromUser API function

parent 074fe64f
No related branches found
No related tags found
1 merge request!2Minimal frontend
...@@ -107,6 +107,23 @@ class AddRoleToUser(graphene.Mutation): ...@@ -107,6 +107,23 @@ class AddRoleToUser(graphene.Mutation):
return AddRoleToUser(user=user,role=role) return AddRoleToUser(user=user,role=role)
class RemoveRoleFromUser(graphene.Mutation):
class Arguments:
username = graphene.String(required=True)
role = graphene.String(required=True)
ok = graphene.Boolean()
def mutate(self, info, username, role):
ok = False
user = user_datastore.db.session().query(UserModel).filter_by(username=username).first()
if user is not None:
user_datastore.remove_role_from_user(user, role)
user_datastore.commit()
ok = True
return RemoveRoleFromUser(ok=ok)
class AddApplicationToUser(graphene.Mutation): class AddApplicationToUser(graphene.Mutation):
class Arguments: class Arguments:
username = graphene.String(required=True) username = graphene.String(required=True)
...@@ -161,6 +178,7 @@ class Mutation(graphene.ObjectType): ...@@ -161,6 +178,7 @@ class Mutation(graphene.ObjectType):
create_role = CreateRole.Field() create_role = CreateRole.Field()
create_application = CreateApplication.Field() create_application = CreateApplication.Field()
add_role_to_user = AddRoleToUser.Field() add_role_to_user = AddRoleToUser.Field()
remove_role_from_user = RemoveRoleFromUser.Field()
add_application_to_user = AddApplicationToUser.Field() add_application_to_user = AddApplicationToUser.Field()
delete_user = DeleteUser.Field() delete_user = DeleteUser.Field()
edit_user = EditUser.Field() edit_user = EditUser.Field()
......
...@@ -155,6 +155,44 @@ class GraphQlTests(LiveServerTestCase): ...@@ -155,6 +155,44 @@ class GraphQlTests(LiveServerTestCase):
users = role["users"]["edges"] users = role["users"]["edges"]
self.assertEqual(username, users[0]["node"]["username"]) self.assertEqual(username, users[0]["node"]["username"])
def test_remove_role_from_user(self):
role_name = "testusers"
role_description = "A role assigned to users during unittests"
username = "graphqluser2"
password = "randompassword"
email = "user2@example.com"
self._create_role(role_name, role_description)
self._create_user(username, password, email)
querystring = '''
mutation{{
addRoleToUser(
username: "{0}",
role: "{1}"){{
user{{username}},
role{{name}}
}}}}'''.format(username, role_name)
self.client.execute(querystring)
querystring = '''
mutation{{
removeRoleFromUser(
username: "{0}",
role: "{1}"){{ ok }}
}}'''.format(username, role_name)
result = loads(self.client.execute(querystring))
self.assertTrue(result["data"]["removeRoleFromUser"]["ok"])
querystring = '''
{{
getUser(username: "{0}"){{
roles{{
edges{{ node {{ name }}}}
}}
}}
}}
'''.format(username).strip()
result = loads(self.client.execute(querystring))
self.assertEqual(0, len(result["data"]["getUser"]["roles"]["edges"]))
def _create_role(self, name, description): def _create_role(self, name, description):
querystring = ''' querystring = '''
mutation{{ mutation{{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment