From 3d80b8c60c3f3ecad72c8280cc3a7be11b62e3c7 Mon Sep 17 00:00:00 2001 From: Yasin Date: Tue, 1 Jul 2014 14:43:46 +0200 Subject: [PATCH] Fix topmenu for pis --- portal/contactview.py | 24 +++++++++++++++++++++++- portal/sliceresourceview.py | 22 +++++++++++++++++++++- portal/sliceview.py | 21 +++++++++++++++++++-- 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/portal/contactview.py b/portal/contactview.py index 3da2e052..c985b297 100644 --- a/portal/contactview.py +++ b/portal/contactview.py @@ -6,6 +6,9 @@ from unfold.loginrequired import FreeAccessView from ui.topmenu import topmenu_items, the_user from django.core.mail import EmailMultiAlternatives, send_mail from portal.forms import ContactForm +from manifold.core.query import Query +from manifoldapi.manifoldapi import execute_query +import json from myslice.theme import ThemeView theme = ThemeView() @@ -71,14 +74,33 @@ class ContactView (FreeAccessView, ThemeView): return self._display (request, ContactForm()) # A fresh unbound form def _display (self, request, form): - if request.user.is_authenticated() : + if request.user.is_authenticated(): username = request.user.email + ## 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" else : username = None + pi = "is_not_pi" return render(request, self.template, { 'form': form, 'topmenu_items': topmenu_items('Contact', request), 'theme' : self.theme, 'username': username, + 'pi': pi, 'section': "Contact" }) diff --git a/portal/sliceresourceview.py b/portal/sliceresourceview.py index 5b8ce0f7..749f7394 100644 --- a/portal/sliceresourceview.py +++ b/portal/sliceresourceview.py @@ -3,6 +3,7 @@ from django.shortcuts import render_to_response from manifold.core.query import Query, AnalyzedQuery from manifoldapi.manifoldapi import execute_query +import json from django.views.generic.base import TemplateView @@ -235,7 +236,25 @@ class SliceResourceView (LoginRequiredView, ThemeView): outline_complete = True, username = request.user, ) - + + ## 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" + template_env = {} template_env['list_resources'] = list_resources.render(self.request) template_env['list_reserved_resources'] = list_reserved_resources.render(self.request) @@ -250,6 +269,7 @@ class SliceResourceView (LoginRequiredView, ThemeView): template_env['sla_dialog'] = sla_dialog.render(self.request) template_env["theme"] = self.theme template_env["username"] = request.user + template_env["pi"] = pi template_env["slice"] = slicename template_env["section"] = "resources" template_env["msg"] = msg diff --git a/portal/sliceview.py b/portal/sliceview.py index e79b48e8..89261c2c 100644 --- a/portal/sliceview.py +++ b/portal/sliceview.py @@ -13,11 +13,28 @@ from django.shortcuts import render from unfold.page import Page from manifold.core.query import Query, AnalyzedQuery from manifoldapi.manifoldapi import execute_query - +import json from myslice.theme import ThemeView class SliceView (LoginRequiredView, ThemeView): template_name = "slice-view.html" def get(self, request, slicename): - return render_to_response(self.template, {"slice": slicename, "theme": self.theme, "username": request.user, "section": "Slice %s" % slicename }, 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, "theme": self.theme, "username": request.user,"pi":pi, "section": "Slice %s" % slicename }, context_instance=RequestContext(request)) -- 2.43.0