22 |
22 |
from django.http import HttpResponse, HttpResponseNotFound
|
23 |
23 |
|
24 |
24 |
from passerelle import utils
|
|
25 |
from passerelle.views import WrongParameter
|
25 |
26 |
|
26 |
27 |
from .models import TeamnetAxel, Link, APIError
|
27 |
28 |
from . import soap
|
28 |
29 |
|
29 |
30 |
|
|
31 |
def get_name_id(request):
|
|
32 |
if 'nameid' not in request.GET:
|
|
33 |
raise WrongParameter(['nameid'], [])
|
|
34 |
return request.GET['nameid']
|
|
35 |
|
|
36 |
|
30 |
37 |
class DetailView(GenericDetailView):
|
31 |
38 |
model = TeamnetAxel
|
32 |
39 |
|
... | ... | |
61 |
68 |
|
62 |
69 |
class LinkView(DetailView):
|
63 |
70 |
def get_data(self, request, *args, **kwargs):
|
64 |
|
nameid = request.GET.get('NameID')
|
65 |
|
if not nameid:
|
66 |
|
raise APIError('NameID required')
|
|
71 |
nameid = get_name_id(request)
|
67 |
72 |
login = request.GET.get('login')
|
68 |
73 |
pwd = request.GET.get('password')
|
69 |
74 |
user = self.object.auth(login, pwd)
|
... | ... | |
81 |
86 |
|
82 |
87 |
class UnlinkView(DetailView):
|
83 |
88 |
def get_data(self, request, *args, **kwargs):
|
84 |
|
nameid = request.GET.get('NameID')
|
85 |
|
if not nameid:
|
86 |
|
raise APIError('NameID required')
|
|
89 |
nameid = get_name_id(request)
|
87 |
90 |
logins = [v['login'] for v in Link.objects.filter(resource=self.object, nameid=nameid).values('login')]
|
88 |
91 |
Link.objects.filter(resource=self.object, nameid=nameid).delete()
|
89 |
92 |
if logins:
|
... | ... | |
94 |
97 |
|
95 |
98 |
class FamilyView(DetailView):
|
96 |
99 |
def get_family_id(self, request):
|
97 |
|
nameid = request.GET.get('NameID')
|
98 |
|
if not nameid:
|
99 |
|
raise APIError('NameID required')
|
|
100 |
nameid = get_name_id(request)
|
100 |
101 |
links = Link.objects.filter(resource=self.object, nameid=nameid)
|
101 |
102 |
if len(links) > 1:
|
102 |
103 |
raise APIError('multiple links')
|