From: Yasin Date: Tue, 1 Jul 2014 10:09:11 +0000 (+0200) Subject: Pi check in each view to make the topmenu show correctly X-Git-Tag: myslice-1.1~60^2~18 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=5ff398d7f973cb4c813dfa3b1c57378315310787;p=myslice.git Pi check in each view to make the topmenu show correctly --- diff --git a/portal/accountview.py b/portal/accountview.py index 4f4ecbfd..15c3799c 100644 --- a/portal/accountview.py +++ b/portal/accountview.py @@ -184,11 +184,32 @@ class AccountView(LoginRequiredAutoLogoutView, ThemeView): # we could use zip. this one is used if columns have unequal rows platform_list = [{'platform_no_access': t[0]} for t in itertools.izip_longest(total_platform_list)] + + + ## check user is pi or not + platform_query = Query().get('local:platform').select('platform_id','platform','gateway_type','disabled') + account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config') + platform_details = execute_query(self.request, platform_query) + account_details = execute_query(self.request, account_query) + for platform_detail in platform_details: + for account_detail in account_details: + if platform_detail['platform_id'] == account_detail['platform_id']: + if 'config' in account_detail and account_detail['config'] is not '': + account_config = json.loads(account_detail['config']) + if 'myslice' in platform_detail['platform']: + acc_auth_cred = account_config.get('delegated_authority_credentials','N/A') + # assigning values + if acc_auth_cred == {}: + pi = "is_not_pi" + else: + pi = "is_pi" + context = super(AccountView, self).get_context_data(**kwargs) context['principal_acc'] = principal_acc_list context['ref_acc'] = ref_acc_list context['platform_list'] = platform_list context['my_users'] = my_users + context['pi'] = pi context['my_slices'] = my_slices context['my_auths'] = my_auths context['user_status'] = user_status diff --git a/portal/homeview.py b/portal/homeview.py index 80e93478..ce12ee26 100644 --- a/portal/homeview.py +++ b/portal/homeview.py @@ -100,7 +100,26 @@ class HomeView (FreeAccessView, ThemeView): def get (self, request, state=None): env = self.default_env() + ## check user is pi or not + platform_query = Query().get('local:platform').select('platform_id','platform','gateway_type','disabled') + account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config') + platform_details = execute_query(self.request, platform_query) + account_details = execute_query(self.request, account_query) + for platform_detail in platform_details: + for account_detail in account_details: + if platform_detail['platform_id'] == account_detail['platform_id']: + if 'config' in account_detail and account_detail['config'] is not '': + account_config = json.loads(account_detail['config']) + if 'myslice' in platform_detail['platform']: + acc_auth_cred = account_config.get('delegated_authority_credentials','N/A') + # assigning values + if acc_auth_cred == {}: + pi = "is_not_pi" + else: + pi = "is_pi" + + env['pi'] = pi if request.user.is_authenticated(): env['person'] = self.request.user else: diff --git a/portal/validationview.py b/portal/validationview.py index f8788d03..65506e3e 100644 --- a/portal/validationview.py +++ b/portal/validationview.py @@ -256,7 +256,25 @@ class ValidatePendingView(LoginRequiredAutoLogoutView, ThemeView): if not auth_hrn in dest: dest[auth_hrn] = [] - dest[auth_hrn].append(request) + dest[auth_hrn].append(request) + + ## check user is pi or not + platform_query = Query().get('local:platform').select('platform_id','platform','gateway_type','disabled') + account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config') + platform_details = execute_query(self.request, platform_query) + account_details = execute_query(self.request, account_query) + for platform_detail in platform_details: + for account_detail in account_details: + if platform_detail['platform_id'] == account_detail['platform_id']: + if 'config' in account_detail and account_detail['config'] is not '': + account_config = json.loads(account_detail['config']) + if 'myslice' in platform_detail['platform']: + acc_auth_cred = account_config.get('delegated_authority_credentials','N/A') + # assigning values + if acc_auth_cred == {}: + pi = "is_not_pi" + else: + pi = "is_pi" context = super(ValidatePendingView, self).get_context_data(**kwargs) context['my_authorities'] = ctx_my_authorities @@ -270,7 +288,7 @@ class ValidatePendingView(LoginRequiredAutoLogoutView, ThemeView): context['topmenu_items'] = topmenu_items_live('Validation', page) # so we can sho who is logged context['username'] = the_user(self.request) - + context['pi'] = pi context['theme'] = self.theme context['section'] = "Requests" # XXX We need to prepare the page for queries