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")
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)