Skip to content

Commit

Permalink
Merge pull request #4781 from korycins/fix/create_sa_token_by_default
Browse files Browse the repository at this point in the history
Create token for service account by default
  • Loading branch information
korycins committed Sep 30, 2019
2 parents a54cbf6 + c0175ba commit 2a95cff
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 0 deletions.
15 changes: 15 additions & 0 deletions saleor/graphql/account/mutations/service_account.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ class Meta:


class ServiceAccountCreate(ModelMutation):
auth_token = graphene.types.String(
description="The newly created authentication token."
)

class Arguments:
input = ServiceAccountInput(
required=True,
Expand All @@ -95,6 +99,17 @@ def clean_input(cls, info, instance, data):
cleaned_input["permissions"] = get_permissions(permissions)
return cleaned_input

@classmethod
def save(cls, info, instance, cleaned_input):
instance.save()
instance.tokens.create(name="Default")

@classmethod
def success_response(cls, instance):
response = super().success_response(instance)
response.auth_token = instance.tokens.get().auth_token
return response


class ServiceAccountUpdate(ModelMutation):
class Arguments:
Expand Down
1 change: 1 addition & 0 deletions saleor/graphql/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -3503,6 +3503,7 @@ type ServiceAccountCountableEdge {

type ServiceAccountCreate {
errors: [Error!]
authToken: String
accountErrors: [AccountError!]
serviceAccount: ServiceAccount
}
Expand Down
3 changes: 3 additions & 0 deletions tests/api/test_account_service_account.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
serviceAccountCreate(input:
{name: $name, isActive: $is_active, permissions: $permissions})
{
authToken
serviceAccount{
permissions{
code
Expand Down Expand Up @@ -50,10 +51,12 @@ def test_service_account_create_mutation(
response = staff_api_client.post_graphql(query, variables=variables)
content = get_graphql_content(response)
service_account_data = content["data"]["serviceAccountCreate"]["serviceAccount"]
default_token = content["data"]["serviceAccountCreate"]["authToken"]
service_account = ServiceAccount.objects.get()
assert service_account_data["isActive"] == service_account.is_active
assert service_account_data["name"] == service_account.name
assert list(service_account.permissions.all()) == [permission_manage_products]
assert default_token == service_account.tokens.get().auth_token


def test_service_account_create_mutation_no_permissions(
Expand Down

0 comments on commit 2a95cff

Please sign in to comment.