Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
fix: TT-162 change endpoint is user in group to a post
  • Loading branch information
PaulRC-ioet committed Feb 24, 2021
commit bd2f8d2312e9c79a5518148a7b76c2bad117fd88
7 changes: 4 additions & 3 deletions tests/time_tracker_api/users/users_namespace_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,10 @@ def test_if_user_is_in_group(
expected_value,
):
is_user_in_group_mock.return_value = {'value': expected_value}
response = client.get(
f'/users/{user_id}/groups/{group_name}/is-member-of',
headers=valid_header,
valid_data = {'group_name': group_name}

response = client.post(
f'/users/{user_id}/is-member-of', headers=valid_header, json=valid_data
)
assert HTTPStatus.OK == response.status_code
assert 'value' in json.loads(response.data)
3 changes: 2 additions & 1 deletion tests/utils/azure_users_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,10 @@ def test_is_user_in_group(
post_mock.return_value = response_mock

get_group_id_by_group_name_mock.return_value = 'group_id'
payload_mock = {'group_name': 'group_id'}

azure_connection = AzureConnection()
assert (
azure_connection.is_user_in_group('user_id', 'group_name')
azure_connection.is_user_in_group('user_id', payload_mock)
== response_expected
)
24 changes: 19 additions & 5 deletions time_tracker_api/users/users_namespace.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,22 @@

ns = api.namespace('users', description='Namespace of the API for users')

# User Model
# Data to check if a user is in the group
data_is_user_in_group = ns.model(
'Data',
{
'group_name': fields.String(
title='group_name',
max_length=50,
description='Name of the Group to verify',
example=Faker().word(
['time-tracker-admin', 'time-tracker-tester']
),
),
},
)

# User Model
user_response_fields = ns.model(
'User',
{
Expand Down Expand Up @@ -101,11 +115,11 @@ def post(self, user_id, role_id):
return AzureConnection().update_role(user_id, role_id, is_grant=False)


@ns.route('/<string:user_id>/groups/<string:group_id>/is-member-of')
@ns.route('/<string:user_id>/is-member-of')
@ns.param('user_id', 'The user identifier')
@ns.param('group_id', 'The group name identifier')
class UserInGroup(Resource):
@ns.doc('user_in_group')
def get(self, user_id, group_id):
@ns.expect(data_is_user_in_group)
def post(self, user_id):
"""Is User in the Group"""
return AzureConnection().is_user_in_group(user_id, group_id)
return AzureConnection().is_user_in_group(user_id, ns.payload)
6 changes: 4 additions & 2 deletions utils/azure_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,10 @@ def get_group_id_by_group_name(self, group_name):

return response.json()['value'][0]['objectId']

def is_user_in_group(self, user_id, group_name):
group_id = self.get_group_id_by_group_name(group_name=group_name)
def is_user_in_group(self, user_id, data: dict):
group_id = self.get_group_id_by_group_name(
group_name=data['group_name']
)

endpoint = "{endpoint}/isMemberOf?api-version=1.6".format(
endpoint=self.config.ENDPOINT
Expand Down