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