source: firmaeventos/base/views.py @ 3397a08

Last change on this file since 3397a08 was 3397a08, checked in by lhernandez <lhernandez@…>, 7 years ago

Realizando formulario para el registro de eventos

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