def set_user_permissions(self, user_id, service_id, permissions): # permissions passed in are the combined admin roles, not db permissions data = [{ 'permission': x } for x in translate_permissions_from_admin_roles_to_db(permissions)] endpoint = '/user/{}/service/{}/permission'.format(user_id, service_id) self.post(endpoint, data=data)
def test_translate_permissions_from_admin_roles_to_db(): roles = ['send_messages', 'manage_templates', 'some_unknown_permission'] db_perms = translate_permissions_from_admin_roles_to_db(roles) assert db_perms == { 'send_texts', 'send_emails', 'send_letters', 'manage_templates', 'some_unknown_permission' }
def add_user_to_service(self, service_id, user_id, permissions): # permissions passed in are the combined admin roles, not db permissions endpoint = '/service/{}/users/{}'.format(service_id, user_id) data = [{ 'permission': x } for x in translate_permissions_from_admin_roles_to_db(permissions)] self.post(endpoint, data=data)
def create_invite(self, invite_from_id, service_id, email_address, permissions, auth_type): data = { 'service': str(service_id), 'email_address': email_address, 'from_user': invite_from_id, 'permissions': ','.join(sorted(translate_permissions_from_admin_roles_to_db(permissions))), 'auth_type': auth_type, 'invite_link_host': self.admin_url, } data = _attach_current_user(data) resp = self.post(url='/service/{}/invite'.format(service_id), data=data) return InvitedUser(**resp['data'])