d021afae8251e807260b683aed98ce111699687e
[cascardo/ipsilon.git] / ipsilon / providers / openid / extensions / cla.py
1 # Copyright (C) 2014  Ipsilon project Contributors, for licensee see COPYING
2
3 from __future__ import absolute_import
4
5 from ipsilon.providers.openid.extensions.common import OpenidExtensionBase
6 from openid_cla import cla
7
8
9 class OpenidExtension(OpenidExtensionBase):
10
11     def __init__(self, *pargs):
12         super(OpenidExtension, self).__init__('CLAs')
13         self.type_uris = [
14             cla.cla_uri,
15         ]
16
17     def _resp(self, request, userdata):
18         req = cla.CLARequest.fromOpenIDRequest(request)
19         self.debug(req)
20         if req is None:
21             return {}
22         data = userdata.get('_extras', {}).get('cla', [])
23         return cla.CLAResponse.extractResponse(req, data)
24
25     def _display(self, request, userdata):
26         resp = self._resp(request, userdata)
27         if resp.clas:
28             return {'CLA': 'yes'}
29         return {}
30
31     def _response(self, request, userdata):
32         return self._resp(request, userdata)