예제 #1
0
    def agregar_usuario(self, cancel=False, **data):
        nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

        usuarios = Usuario.get_alias()

        errors = {}
        usuario = None
        if request.method == "POST":
            if cancel:
                redirect("/usuario")
            form = UsuarioForm()
            try:
                data = form.to_python(data)

                usuario = Usuario(
                    alias=data.get("alias"),
                    nombre=data.get("nombre"),
                    apellido=data.get("apellido"),
                    email_address=data.get("email"),
                    nacionalidad=data.get("nacionalidad"),
                    tipodocumento=data.get("tipodocumento"),
                    nrodoc=data.get("nrodoc"),
                    _password=data.get("clave"),
                )

                if usuario.alias not in usuarios:
                    usuario._set_password(data.get("clave"))
                    rol = Rol.get_rol_by_nombre("Usuario Basico")
                    usuario.roles.append(rol)

                    DBSession.add(usuario)
                    DBSession.flush()
                    print usuario
                    flash("Usuario agregado!")
                    redirect("/usuario")
                else:

                    flash(_("Favor cambie el alias es repetido"), "warning")
                    return dict(
                        pagina="usuarios",
                        usuario=usuario,
                        errors=errors,
                        data=data.get("alias"),
                        nom_proyecto=nom_proyecto,
                        nom_fase=nom_fase,
                        usuarios=usuarios,
                    )

            except Invalid, e:
                print e
                usuario = None
                errors = e.unpack_errors()
                flash(_("Favor complete los datos requeridos"), "warning")

            except IntegrityError:
                flash("LLave duplicada")
                DBSession.rollback()
                redirect("/agregar_usuario")
예제 #2
0
    def put_usuario(
        self, idusuario, alias, nombre, apellido, nacionalidad, tipodocumento, nrodoc, email_address, cancel=False, **kw
    ):

        if cancel:
            redirect("/usuario")

        usuario = Usuario.get_user_by_id(int(idusuario))
        usuarios = Usuario.get_alias()
        usuarios.remove(usuario.alias)

        if alias not in usuarios:

            usuario.alias = (alias,)
            usuario.nombre = (nombre,)
            usuario.apellido = (apellido,)
            usuario.nacionalidad = (nacionalidad,)
            usuario.tipodocumento = (tipodocumento,)
            usuario.nrodoc = (nrodoc,)
            usuario.email_address = (email_address,)

            DBSession.flush()
            flash("Usuario modificado!")
            redirect("/usuario")

        else:

            nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
            nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

            values = dict(
                idusuario=idusuario,
                alias=alias,
                nombre=nombre,
                apellido=apellido,
                nacionalidad=nacionalidad,
                tipodocumento=tipodocumento,
                nrodoc=nrodoc,
                email_address=email_address,
            )

            flash("El alias solicitado ya existe!")
            return dict(pagina="editar_usuario", values=values, nom_proyecto=nom_proyecto, nom_fase=nom_fase)