Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b8ef3f4

Browse files
Syttenlbalmaceda
authored andcommitted
Add user roles API
1 parent bd68980 commit b8ef3f4

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

auth0/v3/management/users.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,45 @@ def update(self, id, body):
126126
"""
127127
return self.client.patch(self._url(id), data=body)
128128

129+
def get_roles(self, id):
130+
"""Get a user's roles.
131+
132+
Args:
133+
id (str): The user's id.
134+
135+
See https://auth0.com/docs/api/management/v2#!/Users/get_user_roles
136+
"""
137+
url = self._url('{}/roles'.format(id))
138+
return self.client.get(url)
139+
140+
def delete_roles(self, id, roles):
141+
"""Removes roles from a user.
142+
143+
Args:
144+
id (str): The user's id.
145+
146+
roles (list of str): A list of roles ids to unassociate from the user.
147+
148+
See https://auth0.com/docs/api/management/v2#!/Users/delete_user_roles
149+
"""
150+
url = self._url('{}/roles'.format(id))
151+
body = {'roles': roles}
152+
return self.client.delete(url, data=body)
153+
154+
def assign_roles(self, id, roles):
155+
"""Assign roles to a user
156+
157+
Args:
158+
id (str): The user's id.
159+
160+
roles (list of str): A list of roles ids to associated with the user.
161+
162+
See https://auth0.com/docs/api/management/v2#!/Users/post_user_roles
163+
"""
164+
url = self._url('{}/roles'.format(id))
165+
body = {'roles': roles}
166+
return self.client.post(url, data=body)
167+
129168
def delete_multifactor(self, id, provider):
130169
"""Delete a user's multifactor provider.
131170

auth0/v3/test/management/test_users.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,43 @@ def test_update(self, mock_rc):
113113
self.assertEqual('https://domain/api/v2/users/an-id', args[0])
114114
self.assertEqual(kwargs['data'], {'a': 'b', 'c': 'd'})
115115

116+
@mock.patch('auth0.v3.management.users.RestClient')
117+
def test_get_roles(self, mock_rc):
118+
mock_instance = mock_rc.return_value
119+
120+
u = Users(domain='domain', token='jwttoken')
121+
u.get_roles('an-id')
122+
123+
mock_instance.get.assert_called_with(
124+
'https://domain/api/v2/users/an-id/roles'
125+
)
126+
127+
@mock.patch('auth0.v3.management.users.RestClient')
128+
def test_delete_roles(self, mock_rc):
129+
mock_instance = mock_rc.return_value
130+
131+
u = Users(domain='domain', token='jwttoken')
132+
u.delete_roles('an-id', ['a', 'b'])
133+
134+
args, kwargs = mock_instance.delete.call_args
135+
136+
self.assertEqual('https://domain/api/v2/users/an-id/roles',
137+
args[0])
138+
self.assertEqual(kwargs['data'], {'roles': ['a', 'b']})
139+
140+
@mock.patch('auth0.v3.management.users.RestClient')
141+
def test_assign_roles(self, mock_rc):
142+
mock_instance = mock_rc.return_value
143+
144+
u = Users(domain='domain', token='jwttoken')
145+
u.assign_roles('an-id', ['a', 'b'])
146+
147+
args, kwargs = mock_instance.post.call_args
148+
149+
self.assertEqual('https://domain/api/v2/users/an-id/roles',
150+
args[0])
151+
self.assertEqual(kwargs['data'], {'roles': ['a', 'b']})
152+
116153
@mock.patch('auth0.v3.management.users.RestClient')
117154
def test_delete_multifactor(self, mock_rc):
118155
mock_instance = mock_rc.return_value

0 commit comments

Comments
 (0)