From 5cef9949c25228e0b8c9d342ad9c40fe386f5396 Mon Sep 17 00:00:00 2001 From: Yasin Date: Wed, 23 Apr 2014 11:48:19 +0200 Subject: [PATCH] Slice-user-tab: add user button visible only to PIs --- portal/slicetabusers.py | 26 ++++++++++++++++++---- portal/templates/slice-tab-users-view.html | 4 +++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/portal/slicetabusers.py b/portal/slicetabusers.py index 49a2d765..51623cf5 100644 --- a/portal/slicetabusers.py +++ b/portal/slicetabusers.py @@ -22,7 +22,7 @@ class SliceUserView (LoginRequiredView, ThemeView): def get(self, request, slicename): if request.user.is_authenticated(): - #user_query = Query().get('user').select('user_hrn','parent_authority').filter_by('user_hrn','==','$user_hrn') + # user_query = Query().get('user').select('user_hrn','parent_authority').filter_by('user_hrn','==','$user_hrn') #user_details = execute_query(self.request, user_query) # if sfa returns None #if user_details[0]['parent_authority'] is None: @@ -33,6 +33,24 @@ class SliceUserView (LoginRequiredView, ThemeView): config = json.loads(user_config['config']) config['authority'] = config.get('authority') user_details[0]['parent_authority'] = config['authority'] - - - return render_to_response(self.template, {"slice": slicename, "user_details":user_details[0], "theme": self.theme, "username": request.user, "section":"users"}, context_instance=RequestContext(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" + + return render_to_response(self.template, {"slice": slicename, "user_details":user_details[0], "pi":pi, "theme": self.theme, "username": request.user, "section":"users"}, context_instance=RequestContext(request)) diff --git a/portal/templates/slice-tab-users-view.html b/portal/templates/slice-tab-users-view.html index 7d3dcbbc..daefe942 100644 --- a/portal/templates/slice-tab-users-view.html +++ b/portal/templates/slice-tab-users-view.html @@ -31,7 +31,9 @@ Enabled - + {% if 'is_pi' in pi %} + + {%endif%}