support showing user's specified contents after signin
[releng.git] / utils / test / testapi / opnfv_testapi / ui / auth / sign.py
1 from six.moves.urllib import parse
2
3 from opnfv_testapi.common import config
4 from opnfv_testapi.ui.auth import base
5 from opnfv_testapi.ui.auth import constants as const
6
7 CONF = config.Config()
8
9
10 class SigninHandler(base.BaseHandler):
11     def get(self):
12         csrf_token = base.get_token()
13         return_endpoint = parse.urljoin(CONF.api_url,
14                                         CONF.osid_openid_return_to)
15         return_to = base.set_query_params(return_endpoint,
16                                           {const.CSRF_TOKEN: csrf_token})
17
18         params = {
19             const.OPENID_MODE: CONF.osid_openid_mode,
20             const.OPENID_NS: CONF.osid_openid_ns,
21             const.OPENID_RETURN_TO: return_to,
22             const.OPENID_CLAIMED_ID: CONF.osid_openid_claimed_id,
23             const.OPENID_IDENTITY: CONF.osid_openid_identity,
24             const.OPENID_REALM: CONF.api_url,
25             const.OPENID_NS_SREG: CONF.osid_openid_ns_sreg,
26             const.OPENID_NS_SREG_REQUIRED: CONF.osid_openid_sreg_required,
27         }
28         url = CONF.osid_openstack_openid_endpoint
29         url = base.set_query_params(url, params)
30         self.redirect(url=url, permanent=False)
31
32
33 class SigninReturnHandler(base.BaseHandler):
34     def get(self):
35         openid = self.get_query_argument(const.OPENID_CLAIMED_ID)
36         user_info = {
37             'openid': openid,
38             'email': self.get_query_argument(const.OPENID_NS_SREG_EMAIL),
39             'fullname': self.get_query_argument(const.OPENID_NS_SREG_FULLNAME)
40         }
41
42         self.db_save(self.table, user_info)
43         if not self.get_secure_cookie('openid'):
44             self.set_secure_cookie('openid', openid)
45         self.redirect(url=CONF.ui_url)