X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fauthconn.py;h=140e0245e76867613dfa54d12bcc013e6d556c9f;hp=2780d59ad811488c5e6c28f762618ea51a9d9bd7;hb=ace34903be528e8e10e096d3d059b81df30ddaa9;hpb=38dcfeb4a5d8c8da65b9ee2d2c2f58bc6164f6bf diff --git a/osm_nbi/authconn.py b/osm_nbi/authconn.py index 2780d59..140e024 100644 --- a/osm_nbi/authconn.py +++ b/osm_nbi/authconn.py @@ -31,13 +31,20 @@ from http import HTTPStatus class AuthException(Exception): """ - Authentication error. + Authentication error, because token, user password not recognized """ def __init__(self, message, http_code=HTTPStatus.UNAUTHORIZED): super(AuthException, self).__init__(message) self.http_code = http_code +class AuthExceptionUnauthorized(AuthException): + """ + Authentication error, because not having rights to make this operation + """ + pass + + class AuthconnException(Exception): """ Common and base class Exception for all authconn exceptions. @@ -79,6 +86,22 @@ class AuthconnOperationException(AuthconnException): super(AuthconnOperationException, self).__init__(message, http_code) +class AuthconnNotFoundException(AuthconnException): + """ + The operation executed failed because element not found. + """ + def __init__(self, message, http_code=HTTPStatus.NOT_FOUND): + super().__init__(message, http_code) + + +class AuthconnConflictException(AuthconnException): + """ + The operation has conflicts. + """ + def __init__(self, message, http_code=HTTPStatus.CONFLICT): + super().__init__(message, http_code) + + class Authconn: """ Abstract base class for all the Auth backend connector plugins. @@ -172,13 +195,14 @@ class Authconn: """ raise AuthconnNotImplementedException("Should have implemented this") - def change_password(self, user, new_password): + def update_user(self, user, new_name=None, new_password=None): """ - Change the user password. + Change the user name and/or password. - :param user: username. + :param user: username or user_id + :param new_name: new name :param new_password: new password. - :raises AuthconnOperationException: if user password change failed. + :raises AuthconnOperationException: if change failed. """ raise AuthconnNotImplementedException("Should have implemented this") @@ -191,11 +215,11 @@ class Authconn: """ raise AuthconnNotImplementedException("Should have implemented this") - def get_user_list(self, filter_q={}): + def get_user_list(self, filter_q=None): """ Get user list. - :param filter_q: dictionary to filter user list. + :param filter_q: dictionary to filter user list by name (username is also admited) and/or _id :return: returns a list of users. """ @@ -217,14 +241,24 @@ class Authconn: """ raise AuthconnNotImplementedException("Should have implemented this") - def get_role_list(self): + def get_role_list(self, filter_q=None): """ Get all the roles. + :param filter_q: dictionary to filter role list by _id and/or name. :return: list of roles """ raise AuthconnNotImplementedException("Should have implemented this") + def update_role(self, role, new_name): + """ + Change the name of a role + :param role: role name or id to be changed + :param new_name: new name + :return: None + """ + raise AuthconnNotImplementedException("Should have implemented this") + def create_project(self, project): """ Create a project.