Refactor plugin initialization and enablement
[cascardo/ipsilon.git] / ipsilon / providers / openid / extensions / teams.py
1 #!/usr/bin/python
2 #
3 # Copyright (C) 2014  Ipsilon project Contributors, for licensee see COPYING
4
5 from __future__ import absolute_import
6
7 from ipsilon.providers.openid.extensions.common import OpenidExtensionBase
8 from openid_teams import teams
9
10
11 class Teams(OpenidExtensionBase):
12
13     def __init__(self, name):
14         super(Teams, self).__init__(name)
15         self.type_uris = [
16             teams.teams_uri,
17         ]
18
19     def _resp(self, request, userdata):
20         req = teams.TeamsRequest.fromOpenIDRequest(request)
21         if req is None:
22             return {}
23         data = userdata.get('groups', [])
24         return teams.TeamsResponse.extractResponse(req, data)
25
26     def _display(self, request, userdata):
27         resp = self._resp(request, userdata)
28         if resp.teams:
29             return {'Groups': resp.teams}
30         return {}
31
32     def _response(self, request, userdata):
33         return self._resp(request, userdata)
34
35
36 class OpenidExtension(Teams):
37     def __init__(self, *pargs):
38         super(OpenidExtension, self).__init__('Teams')