86fe30fc3252c32cedd017b49e4794e7f7a66be2
[cascardo/ipsilon.git] / ipsilon / providers / openid / extensions / teams.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_teams import teams
7
8
9 class Teams(OpenidExtensionBase):
10
11     def __init__(self, name):
12         super(Teams, self).__init__(name)
13         self.type_uris = [
14             teams.teams_uri,
15         ]
16
17     def _resp(self, request, userdata):
18         req = teams.TeamsRequest.fromOpenIDRequest(request)
19         if req is None:
20             return {}
21         data = userdata.get('groups', [])
22         return teams.TeamsResponse.extractResponse(req, data)
23
24     def _display(self, request, userdata):
25         resp = self._resp(request, userdata)
26         if resp.teams:
27             return {'Groups': resp.teams}
28         return {}
29
30     def _response(self, request, userdata):
31         return self._resp(request, userdata)
32
33
34 class OpenidExtension(Teams):
35     def __init__(self, *pargs):
36         super(OpenidExtension, self).__init__('Teams')