SliceUsers: Adapted to new format: check users in slice
[myslice.git] / portal / usersview.py
1 from manifold.core.query        import Query
2 from unfold.page                import Page
3
4 from ui.topmenu                 import topmenu_items_live, the_user
5 from manifoldapi.manifoldapi    import execute_admin_query
6
7 from plugins.querytable         import QueryTable
8 from unfold.loginrequired       import LoginRequiredAutoLogoutView
9 from theme import ThemeView
10
11 from django.shortcuts import render, render_to_response
12
13 import json
14
15 # View for platforms
16 class UsersView(LoginRequiredAutoLogoutView, ThemeView):
17     template_name = "usersview.html"
18     def dispatch(self, *args, **kwargs):
19         return super(UsersView, self).dispatch(*args, **kwargs)
20
21
22     def get_context_data(self, **kwargs):
23         page = Page(self.request)
24         page.add_js_files  ( [ "js/common.functions.js" ] )
25         #platform_query  = Query().get('local:platform').filter_by('disabled', '==', '0').select('platform','platform_longname','gateway_type')
26         #platform_query  = Query().get('local:platform').select('platform','platform_longname','gateway_type')
27         email_list = []
28         status_list = []
29         authority_list = []
30         config={}
31
32         user_query  = Query().get('local:user').select('email','status','config')
33         user_details = execute_admin_query(self.request, user_query)
34
35         for user in user_details:
36             # get email
37             email_list.append(user['email'])
38             # get status
39             if user['status'] == 0:
40                 user_status = 'Disabled'
41             elif user['status'] == 1:
42                 user_status = 'Validation Pending'
43             elif user['status'] == 2:
44                 user_status = 'Enabled'
45             else:
46                 user_status = 'N/A'
47
48             status_list.append(user_status)
49             #get authority
50             #if user['config']:
51             user_config = json.loads(user['config'])
52             user_authority = user_config.get('authority','N/A')
53             authority_list.append(user_authority)
54     
55         user_list = [{'email': t[0], 'status': t[1], 'authority':t[2]}
56             for t in zip(email_list, status_list, authority_list)]
57
58         context = super(UsersView, self).get_context_data(**kwargs)
59         context['person']   = self.request.user
60         context['user_list'] = user_list
61
62         # XXX This is repeated in all pages
63         # more general variables expected in the template
64         context['title'] = 'Users in MySlice'
65         # the menu items on the top
66         # so we can sho who is logged
67         context['username'] = the_user(self.request)
68         context['theme'] = self.theme
69
70         context['layout_1_or_2']="layout-unfold2.html" if not context['username'] else "layout-unfold1.html"
71         #prelude_env = page.prelude_env()
72         #context.update(prelude_env)
73
74         return render_to_response(self.template)