rh.api.photo sans logique accès
[auf_rh_dae.git] / project / rh / api.py
1 # -*- encoding: utf-8 -*
2 from os.path import exists
3
4 from django.conf import settings
5 from django.http import HttpResponse
6 from django.shortcuts import get_object_or_404
7
8 import rh.models as rh
9
10 #@
11 def photo(request, id):
12 """Vérifier les droits d'accès à la photo de l'employé.
13 Input : id = id de l'employé
14 Output : Photo via HTTP (avec bon mime-type) ou Erreur 550 HTTP : Permission denied.
15 """
16 path_dir = settings.PRIVE_MEDIA_ROOT + '/employe/photos/'
17 path_default = settings.MEDIA_ROOT + '/images/'
18 filename_default_m = 'homme.png'
19 filename_default_f = 'femme.png'
20
21 default = False
22 employe = get_object_or_404(rh.Employe, pk=id)
23 # TODO : chercher n'importe quelle image (peu importe extension)
24 path = "%s%d%s" % (path_dir, employe.id, '.jpg')
25
26 # image
27 image = get_image(path)
28 if not image :
29 default = True
30 filename = filename_default_m
31 if employe.genre.lower() == 'f':
32 filename = filename_default_f
33 path = path_default + filename
34 image = get_image(path)
35
36 # content_type
37 # TODO : rendre variable, fonction du type
38 content_type = 'image/jpeg'
39 if default:
40 content_type = 'image/png'
41
42 # status
43 status = 404 # 550, Permission denied géré dans décorateur
44 if image:
45 status = 200
46 return HttpResponse(content=image, status=status, content_type=content_type)
47
48 # helper
49 def get_image(path):
50 image = None
51 if exists(path):
52 try:
53 f = open(path)
54 image = f.read()
55 f.close()
56 except:
57 pass
58 return image