Commit | Line | Data |
---|---|---|
fd5f1d55 | 1 | # -*- encoding: utf-8 -*- |
5be60939 OL |
2 | |
3 | import os | |
4 | from sendfile import sendfile | |
5 | ||
6 | from django.conf import settings | |
fd5f1d55 | 7 | from django.shortcuts import render_to_response |
8 | from django.template import RequestContext | |
5be60939 | 9 | from django.contrib.auth.decorators import login_required |
852aca18 | 10 | from django.contrib.auth.views import login |
5be60939 OL |
11 | from django.shortcuts import redirect, render_to_response, get_object_or_404 |
12 | ||
13 | # pas de reference a DAE devrait etre refactorisé | |
5633fa41 | 14 | from project.dae.decorators import dae_groupe_requis |
5be60939 | 15 | from project.dae.decorators import redirect_interdiction |
fd5f1d55 | 16 | |
17 | def index(request): | |
852aca18 | 18 | return login(request, template_name='index.html') |
5be60939 OL |
19 | |
20 | @login_required | |
21 | def piece(request, filename): | |
22 | """Téléchargement d'une pièce jointe à un poste.""" | |
23 | # compatibilité avec DAE prod avant sécurité | |
24 | try: | |
25 | app, model, id, f = filename.split('/') | |
26 | except: | |
27 | path = os.path.join(settings.PRIVE_MEDIA_ROOT, filename) | |
28 | return sendfile(request, path) | |
29 | ||
30 | application = __import__(app).models | |
31 | if model == 'contrat': | |
32 | # TODO definir peut-être un controle d'accès | |
33 | piece = get_object_or_404(application.Contrat, fichier=filename) | |
34 | return sendfile(request, piece.fichier.path) | |
35 | if model == 'employe': | |
36 | # TODO definir peut-être un controle d'accès | |
37 | piece = get_object_or_404(application.EmployePiece, fichier=filename) | |
38 | return sendfile(request, piece.fichier.path) | |
39 | if model == 'poste': | |
40 | piece = get_object_or_404(application.PostePiece, fichier=filename) | |
41 | if application.Poste.objects.ma_region_ou_service(request.user).filter(id=piece.poste_id).exists(): | |
42 | return sendfile(request, piece.fichier.path) | |
43 | else: | |
44 | return redirect_interdiction(request) | |
45 | if model == 'dossier': | |
46 | piece = get_object_or_404(application.DossierPiece, fichier=filename) | |
47 | if application.Dossier.objects.ma_region_ou_service(request.user).filter(id=piece.dossier_id).exists(): | |
48 | return sendfile(request, piece.fichier.path) | |
49 | else: | |
50 | return redirect_interdiction(request) | |
51 |