AiC and REST login
[myslice.git] / portal / cloudlabview.py
1 import json
2 from django.core.context_processors import csrf
3 from django.http import HttpResponseRedirect
4 from django.contrib.auth import authenticate, login, logout
5 from django.template import RequestContext
6 from django.shortcuts import render_to_response
7 from django.shortcuts import render
8
9 from unfold.loginrequired import LoginRequiredAutoLogoutView
10 from manifold.core.query     import Query
11 from manifoldapi.manifoldapi import execute_query
12
13 from manifoldapi.manifoldresult import ManifoldResult
14 from myslice.configengine import ConfigEngine
15
16 from myslice.theme import ThemeView
17 from myslice.settings                   import logger
18
19 class CloudView (LoginRequiredAutoLogoutView, ThemeView):
20     template_name = 'cloudlab.html'
21
22     def get (self, request, state=None):
23         env = {}
24         pkey = None
25         cert = None
26         account_query  = Query().get('local:account').select('user_id','platform_id','auth_type','config')
27         account_details = execute_query(self.request, account_query)
28         # Get the accounts of the current logged in user
29         for account_detail in account_details:
30             try:
31                 account_config = json.loads(account_detail['config'])
32                 if 'user_private_key' in account_config:
33                     pkey = account_config['user_private_key']
34                 if 'gid' in account_config:
35                     cert = account_config['gid']
36             except ValueError as e:
37                 print('not a JSON')
38
39         env['supername'] = 'Amira'
40         env['cert'] = cert
41         env['key'] = pkey                                                      
42         if request.user.is_authenticated(): 
43             env['person'] = self.request.user
44             env['username'] = self.request.user
45         else: 
46             env['person'] = None
47             env['username'] = None
48     
49         env['theme'] = self.theme
50         env['section'] = ""
51
52         return render_to_response(self.template_name, env, context_instance=RequestContext(request))
53