def update(): s_config = siteconfig.get_config() if not has_permission("docente_update", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) # Validación - Fill choices choices = forms_docente.choices() form = DocenteForm(choices) op_response = dict() if form.validate_on_submit(): params = request.form.to_dict() if "username" in params: user = User.find_by_user(params["username"]) if user: params["usuario_id"] = user["id"] params["fecha_nacimiento"] = datetime.strptime( params["fecha_nacimiento"], "%d/%m/%Y").date() updated = Docente.update(params) if updated: op_response["msg"] = "Se ha modificado al docente con éxito" op_response["type"] = "success" else: op_response["msg"] = "Ha ocurrido un error al editar al docente" op_response["type"] = "error" abort(make_response(jsonify(op_response), 422)) else: if len(form.errors) >= 2: op_response[ "msg"] = "Complete todos los datos del docente a modificar" op_response["type"] = "error" else: error_msg = "".join(list(form.errors.values())[0]).strip("'[]") op_response["msg"] = error_msg op_response["type"] = "error" abort(make_response(jsonify(op_response), 400)) return make_response(jsonify(op_response), 200)
def new(): s_config = siteconfig.get_config() if not has_permission("preceptor_new", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) # Validación - Fill choices choices = forms_preceptor.choices() form = PreceptorForm(choices) op_response = dict() if form.validate_on_submit(): params = request.form.to_dict() params["fecha_nacimiento"] = datetime.strptime( params["fecha_nacimiento"], "%d/%m/%Y" ).date() if "username" in params: user = User.find_by_user(params["username"]) if user: params["usuario_id"] = user["id"] created = Preceptor.create(params) if created: op_response["msg"] = "Se ha agregado al preceptor exitosamente" op_response["type"] = "success" else: op_response["msg"] = "Ha ocurrido un error al crear al preceptor" op_response["type"] = "error" abort(make_response(jsonify(op_response), 422)) else: error_msg = "".join(list(form.errors.values())[0]).strip("'[]") op_response["msg"] = error_msg op_response["type"] = "error" abort(make_response(jsonify(op_response), 400)) return make_response(jsonify(op_response), 201)
def authenticate(): form = LoginForm() if form.validate_on_submit(): params = request.form user = User.find_by_user(params["username"]) if ( user and user["activo"] == 1 and bcrypt.check_password_hash(user["password"], params["password"]) ): config = siteconfig.get_config() modo_mantenimiento = config["modo_mantenimiento"] if modo_mantenimiento == 1 and ( not User.has_role(params["username"], "administrador") ): flash("Sitio en mantenimiento", "error") else: session["user"] = user["username"] flash("La sesión se inició correctamente", "success") return redirect(url_for("user_dashboard")) elif user and user["activo"] == 0: flash("Su cuenta está bloqueada", "error") else: flash("Usuario o clave incorrecto", "error") # TODO: Mensajes de error else: if len(form.errors) == 2: flash("Complete los campos para poder loguearse", "error") else: error_msg = "".join(list(form.errors.values())[0]).strip("'[]") flash(error_msg, "error") return redirect(url_for("auth_login"))
def profile(): s_config = siteconfig.get_config() if not authenticated(session) or (s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) username = session.get("user") user = User.find_by_user(username) roles = User.user_roles(username) return render_template( "user/account.html", username=user["username"], email=user["email"], password=user["password"], first_name=user["first_name"], last_name=user["last_name"], roles=roles, )