1 from portal.templateviews import LoginRequiredAutoLogoutView
3 from manifold.core.query import Query
4 from manifold.manifoldapi import execute_query
6 from myslice.viewutils import topmenu_items, the_user
11 class AccountView(LoginRequiredAutoLogoutView):
12 template_name = "my_account.html"
14 def dispatch(self, *args, **kwargs):
15 return super(AccountView, self).dispatch(*args, **kwargs)
18 def get_context_data(self, **kwargs):
20 user_query = Query().get('local:user').select('config','email')
21 user_details = execute_query(self.request, user_query)
23 # not always found in user_details...
25 for user_detail in user_details:
26 #email = user_detail['email']
27 if user_detail['config']:
28 config = json.loads(user_detail['config'])
30 platform_query = Query().get('local:platform').select('platform_id','platform')
31 account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config')
32 platform_details = execute_query(self.request, platform_query)
33 account_details = execute_query(self.request, account_query)
35 # initial assignment needed for users having no account
40 platform_name_list = []
41 account_type_list = []
44 for account_detail in account_details:
45 for platform_detail in platform_details:
46 if platform_detail['platform_id'] == account_detail['platform_id']:
47 platform_name = platform_detail['platform']
48 account_type = account_detail['auth_type']
49 account_config = json.loads(account_detail['config'])
51 account_usr_hrn = account_config.get('user_hrn','N/A')
52 account_pub_key = account_config.get('user_public_key','N/A')
54 platform_name_list.append(platform_name)
55 account_type_list.append(account_type)
56 usr_hrn_list.append(account_usr_hrn)
57 pub_key_list.append(account_pub_key)
59 # combining 4 lists into 1 [to render in the template]
60 lst = [{'platform_name': t[0], 'account_type': t[1], 'usr_hrn':t[2], 'usr_pubkey':t[3]}
61 for t in zip(platform_name_list, account_type_list, usr_hrn_list, pub_key_list)]
65 context = super(AccountView, self).get_context_data(**kwargs)
67 context['person'] = self.request.user
68 context ['firstname'] = config.get('firstname',"?")
69 context ['lastname'] = config.get('lastname',"?")
70 context ['fullname'] = context['firstname'] +' '+ context['lastname']
71 context ['authority'] = config.get('authority',"Unknown Authority")
72 #context['users'] = userlist.render(self.request)
74 # XXX This is repeated in all pages
75 # more general variables expected in the template
76 context['title'] = 'Platforms connected to MySlice'
77 # the menu items on the top
78 context['topmenu_items'] = topmenu_items('My Account', self.request)
79 # so we can sho who is logged
80 context['username'] = the_user(self.request)
81 # context ['firstname'] = config['firstname']
82 #context.update(page.prelude_env())