Changeset 07f5b2b in sicp


Ignore:
Timestamp:
May 18, 2015, 1:41:21 PM (9 years ago)
Author:
Ing. Roldan D. Vargas G <rvargas@…>
Branches:
master
Children:
7fc4fb2
Parents:
8dbf324
Message:

se agrega la clase del formulario y sus correspondientes métodos de validación para el formulario de acceso al sistema

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/usuario/forms.py

    rd19a617 r07f5b2b  
    1919__doc__    = "Estructura de los formularios para el registro y acceso de usuarios al sistema"
    2020
     21from django import forms
    2122from django.forms import ModelForm, ChoiceField, TextInput, EmailInput, CharField, Select, EmailField, ModelChoiceField
    2223from django.contrib.auth.models import User
     
    111112        model = UserProfile
    112113        exclude = ['fecha_modpass', 'user']
     114
     115
     116class AutenticarForm(forms.Form):
     117    """!
     118    Clase que muestra el formulario de autenticación de usuarios
     119
     120    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     121    @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) Nodo Mérida - Venezuela
     122    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     123    @date 18-05-2015
     124    @version 3.0.0
     125    """
     126    ## Atributo que muestra el campo del nombre de usuario
     127    usuario = forms.CharField(
     128        label=_(u"Usuario"), max_length=30, widget=forms.TextInput(attrs={
     129            'class': 'form-control', 'placeholder': _(u"nombre de usuario"), 'data-toggle': 'tooltip',
     130            'title': _(u"Indique un nombre de usuario válido con acceso al sistema"),
     131            'onkeypress': 'return validar_numeros(event);', 'maxlength': '8'
     132        })
     133    )
     134
     135    ## Atributo que muestra el campo para la contraseña del usuario
     136    clave = forms.CharField(
     137        label=_(u"Contraseña"), max_length=30, widget=forms.PasswordInput(attrs={
     138            'class': 'form-control', 'placeholder': _(u"contraseña de acceso"), 'data-toggle': 'tooltip',
     139            'title': _(u"Indique la contraseña de acceso al sistema")
     140        })
     141    )
     142
     143    ## Atributo que muestra un campo de validación de captcha
     144    captcha = CaptchaField(
     145        label=_(u"Captcha"), widget=CaptchaTextInput(attrs={
     146            'class': 'form-control', 'placeholder': _(u"escriba el texto de la imagen"),
     147            'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip',
     148            'title': _(u"Indique el texto de la imagen")
     149        })
     150    )
     151
     152    def clean_usuario(self):
     153        """!
     154        Método que permite validar los datos introducidos en el campo usuario
     155
     156        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     157        @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) Nodo Mérida - Venezuela
     158        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     159        @date 18-05-2015
     160        @return Devuelve un mensaje de error en caso de que los datos introducidos no sean correctos
     161        """
     162        usr = self.cleaned_data['usuario']
     163        if not User.objects.filter(username=usr):
     164            raise forms.ValidationError(_(u"El usuario no se encuentra registrado"))
     165        elif not User.objects.get(username=usr).is_active:
     166            raise forms.ValidationError(_(u"El usuario se encuentra inactivo"))
     167
     168        return usr
     169
     170    def clean_clave(self):
     171        """!
     172        Método que permite validar la contraseña introducida
     173
     174        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     175        @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) Nodo Mérida - Venezuela
     176        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     177        @date 18-05-2015
     178        @return Devuelve un mensaje de error en caso de que los datos introducidos no sean correctos
     179        """
     180        clave = self.cleaned_data['clave']
     181        usr = self.data['usuario']
     182        if User.objects.filter(username=usr):
     183            if not User.objects.get(username=usr).check_password(clave):
     184                raise forms.ValidationError(_(u"La contraseña es incorrecta"))
     185
     186        return clave
Note: See TracChangeset for help on using the changeset viewer.