Pi check in each view to make the topmenu show correctly
authorYasin <mohammed-yasin.rahman@lip6.fr>
Tue, 1 Jul 2014 10:09:11 +0000 (12:09 +0200)
committerYasin <mohammed-yasin.rahman@lip6.fr>
Tue, 1 Jul 2014 10:09:11 +0000 (12:09 +0200)
portal/accountview.py
portal/homeview.py
portal/validationview.py

index 4f4ecbf..15c3799 100644 (file)
@@ -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
index 80e9347..ce12ee2 100644 (file)
@@ -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: 
index f8788d0..65506e3 100644 (file)
@@ -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