From: Loic Baron Date: Mon, 13 Apr 2015 16:21:38 +0000 (+0200) Subject: Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into onelab X-Git-Tag: myslice-1.3~37^2~17^2~4 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=38246e458d7376845f110d5dbfcc4d8ae874f277;hp=6df317a72253c8f590630a331a4576784959d3e9;p=unfold.git Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into onelab Conflicts: portal/accountview.py --- diff --git a/portal/about.py b/portal/about.py index 99434a70..1bc51fc2 100644 --- a/portal/about.py +++ b/portal/about.py @@ -20,8 +20,8 @@ class AboutView (FreeAccessView, ThemeView): # expose this so we can mention the backend URL on the welcome page def default_env (self): return { - 'MANIFOLD_URL':ConfigEngine().manifold_url(), - } + 'MANIFOLD_URL':ConfigEngine().manifold_url(), + } def post (self,request): env = self.default_env() @@ -39,13 +39,14 @@ class AboutView (FreeAccessView, ThemeView): env['theme'] = self.theme env['section'] = "About" - env['username']=the_user(request) + env['username'] = the_user(request) env['topmenu_items'] = topmenu_items(None, request) - if state: env['state'] = state - elif not env['username']: env['state'] = None + if state: + env['state'] = state + elif not env['username']: + env['state'] = None # use one or two columns for the layout - not logged in users will see the login prompt - env['layout_1_or_2']="layout-unfold2.html" if not env['username'] else "layout-unfold1.html" - + env['layout_1_or_2'] = "layout-unfold2.html" if not env['username'] else "layout-unfold1.html" return render_to_response(self.template, env, context_instance=RequestContext(request)) diff --git a/portal/account.py b/portal/account.py index 7d08e1cf..fc6d9550 100644 --- a/portal/account.py +++ b/portal/account.py @@ -10,14 +10,17 @@ import json, os, re, itertools class Account: def __init__ (self, platform_id, user_id): - account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config').filter_by('platform_id', '==', platform_id).filter_by('user_id', '==', user_id) + account_query = Query().get('local:account')\ + .select('user_id','platform_id','auth_type','config')\ + .filter_by('platform_id', '==', platform_id)\ + .filter_by('user_id', '==', user_id) - account_details = execute_query(self.request, account_query) + account_details = execute_query(self.request, account_query) self.user_id = account_details['user_id'] self.platform_id = account_details['platform_id'] self.auth_type = account_details['auth_type'] self.config = account_details['config'] - account_config = json.loads(account_details['config']) + account_config = json.loads(account_details['config']) self.usr_hrn = account_config.get('user_hrn',None) self.pub_key = account_config.get('user_public_key',None) diff --git a/portal/accountview.py b/portal/accountview.py index 20fbe55a..076f993f 100644 --- a/portal/accountview.py +++ b/portal/accountview.py @@ -38,7 +38,8 @@ class AccountView(LoginRequiredAutoLogoutView, ThemeView): metadata = page.get_metadata() page.expose_js_metadata() - page.add_js_files ( [ "js/jquery.validate.js", "js/my_account.register.js", "js/my_account.edit_profile.js","js/jquery-ui.js" ] ) + page.add_js_files ( [ "js/jquery.validate.js", "js/my_account.register.js", + "js/my_account.edit_profile.js","js/jquery-ui.js" ] ) page.add_css_files ( [ "css/onelab.css", "css/account_view.css","css/plugin.css" ] ) # Execute a Query to delegate credentials if necessary @@ -178,8 +179,13 @@ class AccountView(LoginRequiredAutoLogoutView, ThemeView): pub_key_list.append(account_pub_key) user_status_list.append(user_status) # combining 5 lists into 1 [to render in the template] - principal_acc_list = [{'platform_name': t[0], 'account_type': t[1], 'delegation_type': t[2], 'usr_hrn':t[3], 'usr_pubkey':t[4], 'user_status':t[5],} - for t in zip(platform_name_list, account_type_list, delegation_type_list, usr_hrn_list, pub_key_list, user_status_list)] + principal_acc_list = [ + {'platform_name' : pn, 'account_type' : at, + 'delegation_type' : dt, 'usr_hrn' : uh, + 'usr_pubkey' : up, 'user_status' : us,} + for pn, at, dt, uh, up, us in zip(platform_name_list, account_type_list, delegation_type_list, + usr_hrn_list, pub_key_list, user_status_list) + ] # to hide private key row if it doesn't exist if 'myslice' in platform_detail['platform']: account_config = json.loads(account_detail['config']) @@ -286,15 +292,19 @@ def account_process(request): for account_detail in account_details: for platform_detail in platform_details: # Add reference account to the platforms - if 'add_'+platform_detail['platform'] in request.POST or request.POST['button_value'] == 'add_'+platform_detail['platform']: + if 'add_'+platform_detail['platform'] in request.POST\ + or request.POST['button_value'] == 'add_'+platform_detail['platform']: platform_id = platform_detail['platform_id'] - user_params = {'platform_id': platform_id, 'user_id': user_id, 'auth_type': "reference", 'config': '{"reference_platform": "myslice"}'} + user_params = {'platform_id': platform_id, 'user_id': user_id, + 'auth_type': "reference", + 'config': '{"reference_platform": "myslice"}'} manifold_add_account(request,user_params) messages.info(request, 'Reference Account is added to the selected platform successfully!') return HttpResponseRedirect("/portal/account/") # Delete reference account from the platforms - if 'delete_'+platform_detail['platform'] in request.POST or request.POST['button_value'] == 'delete_'+platform_detail['platform']: + if 'delete_'+platform_detail['platform'] in request.POST\ + or request.POST['button_value'] == 'delete_'+platform_detail['platform']: platform_id = platform_detail['platform_id'] user_params = {'user_id':user_id} manifold_delete_account(request,platform_id, user_id, user_params) @@ -356,7 +366,8 @@ def account_process(request): updated_config = json.dumps(config) user_params = {'config': updated_config} else: # it's needed if the config is empty - user_config['config']= '{"firstname":"' + edited_first_name + '", "lastname":"'+ edited_last_name + '", "authority": "Unknown Authority"}' + user_config['config'] = '{{"firstname":"{}", "lastname":"{}", "authority": "Unknown Authority"}}'\ + .format(edited_first_name, edited_last_name) user_params = {'config': user_config['config']} # updating config local:user in manifold manifold_update_user(request, request.user.email,user_params) @@ -371,10 +382,10 @@ def account_process(request): for user_pass in user_details: user_pass['password'] = edited_password #updating password in local:user - user_params = { 'password': user_pass['password']} - manifold_update_user(request,request.user.email,user_params) + user_params = { 'password' : user_pass['password']} + manifold_update_user(request, request.user.email, user_params) # return HttpResponse('Success: Password Changed!!') - messages.success(request, 'Sucess: Password Updated.') + messages.success(request, 'Success: Password Updated.') return HttpResponseRedirect("/portal/account/") # XXX TODO: Factorize with portal/registrationview.py @@ -494,7 +505,7 @@ def account_process(request): else: messages.error(request, 'Delete error: Private key is not stored in the server') return HttpResponseRedirect("/portal/account/") - + except Exception as e: messages.error(request, 'Account error: You need an account in myslice platform to perform this action') return HttpResponseRedirect("/portal/account/") diff --git a/portal/sliceview.py b/portal/sliceview.py index 309347c5..7bf139d1 100644 --- a/portal/sliceview.py +++ b/portal/sliceview.py @@ -37,4 +37,10 @@ class SliceView (LoginRequiredView, ThemeView): pi = "is_not_pi" else: pi = "is_pi" - return render_to_response(self.template, {"slice": slicename, "theme": self.theme, "username": request.user,"pi":pi, "section": "Slice %s" % slicename }, context_instance=RequestContext(request)) + return render_to_response(self.template, + {"slice" : slicename, + "theme" : self.theme, + "username" : request.user, + "pi" : pi, + "section" : "Slice {}".format(slicename) }, + context_instance=RequestContext(request))