source: firmaeventos/base/views.py @ 71e4f31

Last change on this file since 71e4f31 was 3ae7c21, checked in by lhernandez <lhernandez@…>, 7 years ago

Merge branch 'master' of https://github.com/cenditel-desarrollo/FirmaEventos

  • Property mode set to 100755
File size: 2.6 KB
Line 
1# -*- coding: utf-8 -*-
2"""!
3Vista que construye los controladores para las utilidades de la plataforma
4
5@author Ing. Leonel P. Hernandez M. (leonelphm at gmail.com)
6@copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
7@date 09-06-2017
8@version 1.0.0
9"""
10import json
11from django.core.serializers.json import DjangoJSONEncoder
12from django.http import HttpResponse
13from django.shortcuts import render
14from django.views.generic import TemplateView
15from django.contrib import messages
16from django.contrib.auth.mixins import (
17    PermissionRequiredMixin, LoginRequiredMixin
18)
19from django.shortcuts import (
20    redirect
21)
22
23from .models import *
24from .messages import MENSAJES_LOGIN
25
26
27class LoginRequeridoPerAuth(LoginRequiredMixin):
28    """!
29    Clase que construye el controlador para el login requerido, se sobreescribe el metodo dispatch
30
31    @author Ing. Leonel Paolo Hernandez Macchiarulo  (leonelphm at gmail.com)
32    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
33    @date 09-06-2017
34    @version 1.0.0
35    """
36
37    def dispatch(self, request, *args, **kwargs):
38        """
39        Envia una alerta al usuario que intenta acceder sin permisos para esta clase
40        @return: Direcciona al login en caso de no poseer permisos, en caso contrario accede a la clase
41        """
42        if not request.user.is_authenticated:
43            messages.warning(self.request, MENSAJES_LOGIN['LOGIN_REQUERIDO'])
44            return self.handle_no_permission()
45        valid_group = False
46        grupos = request.user.groups.all()
47        grupo = []
48        if len(grupos) > 1:
49            for g in grupos:
50                grupo += str(g),
51                if (str(g) in self.get_group_required()):
52                    valid_group = True
53        else:
54            try:
55                grupo = str(request.user.groups.get())
56            except:
57                return redirect('users:403error')
58            if (grupo in self.get_group_required()):
59                valid_group = True
60        if not (valid_group):
61            return redirect('users:403error')
62        return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)
63
64
65class StartView(TemplateView):
66    """!
67    Muestra el inicio de la plataforma
68
69    @author Ing. Leonel Paolo Hernandez Macchiarulo  (leonelphm at gmail.com)
70    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
71    @date 09-01-2017
72    @version 1.0.0
73    @return: El template inicial de la plataforma
74    """
75    template_name = "index.html"
Note: See TracBrowser for help on using the repository browser.