X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=userhandler%2Fviews.py;h=b78d1ded182ddb2f56a804d6989b4257cb424842;hb=refs%2Ftags%2Fv8.0.2;hp=17032330092e4b5773f0cbf15aa97ce413760e43;hpb=8da2313d9791c27c6e67511bb0e392aec73ec7c4;p=osm%2FLW-UI.git diff --git a/userhandler/views.py b/userhandler/views.py index 1703233..b78d1de 100644 --- a/userhandler/views.py +++ b/userhandler/views.py @@ -31,23 +31,11 @@ def user_list(request): user = osmutils.get_user(request) client = Client() result = client.user_list(user.get_token()) - result_projects = client.project_list(user.get_token()) - p_map = {'admin': 'admin'} - for p in result_projects['data']: - p_map[p['_id']] = p['name'] - users = result['data'] if result and result['error'] is False else [] - for user in users: - user_project_ids = user['projects'] - user_project_names = [] - for p_id in user_project_ids: - if p_id in p_map: - user_project_names.append(p_map[p_id]) - user['projects'] = user_project_names result = { 'users': result['data'] if result and result['error'] is False else [] } - + return __response_handler(request, result, 'user_list.html') @@ -55,11 +43,10 @@ def user_list(request): def create(request): user = osmutils.get_user(request) client = Client() - user_data ={ - "username": request.POST['username'], - "password": request.POST['password'], - "projects": request.POST.getlist('projects') - } + + new_user_dict = request.POST.dict() + keys = ["username", "password", "domain_name"] + user_data = dict(filter(lambda i: i[0] in keys and len(i[1]) > 0, new_user_dict.items())) result = client.user_create(user.get_token(), user_data) if result['error']: return __response_handler(request, result['data'], url=None, @@ -83,33 +70,44 @@ def delete(request, user_id=None): else: return __response_handler(request, {}, url=None, status=200) + +@login_required +def user_info(request, user_id=None): + user = osmutils.get_user(request) + try: + client = Client() + + info_res = client.get_user_info(user.get_token(), user_id) + except Exception as e: + log.exception(e) + info_res = {'error': True, 'data': str(e)} + if info_res['error']: + return __response_handler(request, info_res['data'], url=None, + status=info_res['data']['status'] if 'status' in info_res['data'] else 500) + else: + return __response_handler(request, info_res['data'], url=None, status=200) + + @login_required def update(request, user_id=None): user = osmutils.get_user(request) try: client = Client() - projects_old = request.POST.get('projects_old').split(',') - projects_new = request.POST.getlist('projects') - default_project = request.POST.get('default_project') - projects_new.append(default_project) - projects_to_add = list(set(projects_new) - set(projects_old)) - projects_to_remove = list(set(projects_old) - set(projects_new)) - - project_payload = {} - - for p in projects_to_remove: - project_payload["$"+str(p)] = None - for p in projects_to_add: - if p not in projects_old: - project_payload["$+"+str(p)] = str(p) - project_payload["$" + default_project] = None - project_payload["$+[0]"] = default_project payload = {} - if project_payload: - payload["projects"] = project_payload + if request.POST.get('password') and request.POST.get('password') is not '': payload["password"] = request.POST.get('password') + if request.POST.getlist('map_project_name') and request.POST.getlist('map_role_name'): + project_param_name = request.POST.getlist('map_project_name') + role_param_ip = request.POST.getlist('map_role_name') + payload["project_role_mappings"] = [] + for i, project in enumerate(project_param_name): + payload["project_role_mappings"].append({ + 'project': project, + 'role': role_param_ip[i], + }) + update_res = client.user_update(user.get_token(), user_id, payload) except Exception as e: log.exception(e) @@ -119,7 +117,6 @@ def update(request, user_id=None): status=update_res['data']['status'] if 'status' in update_res['data'] else 500) else: return __response_handler(request, {}, url=None, status=200) - #return __response_handler(request, {}, 'users:list', to_redirect=True, ) def __response_handler(request, data_res, url=None, to_redirect=None, *args, **kwargs):