def update(): #Auth check auth.authenticated_or_401() if request.method == "POST": User.db = get_db() if (not User.has_permission(session['id'],'usuario_update')): abort(401) else: post_data = request.get_json() #Obtención de información errors = [] #Errores #Chequeo username if User.find_by_username_not_self(post_data): errors.append({'name': 'username', 'message': 'El nombre de usuario ingresado ya existe'}) #Chequeo email if User.find_by_email_not_self(post_data): errors.append({'name': 'email', 'message': 'El email ingresado ya existe'}) form = forms.ValidateUserWithOutPassword.from_json(post_data, skip_unknown_keys=True) if (form.validate() and len(errors) == 0): User.update(post_data) new_user = User.find_by_email(post_data['email']) update_roles(new_user['user_id'], post_data) response_object = {'status': 'success', 'message': 'Se actualizó el nuevo usuario'} else: if (not form.validate()): err = {'name': 'fields', 'message': 'Verifica los campos obligatorios y no ingreses nombres no permitidos.'} errors.append(err) response_object = errors return jsonify(response_object)
def update(): if not authenticated(session): abort(401) #Chequea permiso User.db = get_db() if (User.tiene_permiso(session['id'], 'usuario_update')): if request.method == "POST" and forms.ValidateUserWithOutPassword( request.form).validate(): #verifica los roles enviados if (request.form.get("rol1") == None) and (request.form.get("rol2") == None) and (request.form.get("rol3") == None): flash('Debes elegir al menos un rol de usuario', 'error') #Chequea la existencia del usuario elif User.find_by_username_not_self(request.form['username'], request.form.get("id_data")): flash("Ya existe un usuario con ese nombre de usuario", 'error') elif User.find_by_email_not_self(request.form['email'], request.form.get("id_data")): flash("Ya existe un usuario con ese email", 'error') else: User.update(request.form) if request.form.get("rol1") != None: if not User.tiene_rol(request.form['id_data'], 'administrador'): a = '1' User.set_role(request.form.get("id_data"), a) else: a = '1' if User.tiene_rol(request.form['id_data'], 'administrador'): User.unset_role(request.form.get("id_data"), a) if request.form.get("rol2") != None: if not User.tiene_rol(request.form['id_data'], 'docente'): User.set_role(request.form.get("id_data"), 2) else: if User.tiene_rol(request.form['id_data'], 'docente'): User.unset_role(request.form.get("id_data"), 2) if request.form.get("rol3") != None: if not User.tiene_rol(request.form['id_data'], 'preceptor'): User.set_role(request.form.get("id_data"), 3) else: if User.tiene_rol(request.form['id_data'], 'preceptor'): User.unset_role(request.form.get("id_data"), 3) flash("Usuario modificado correctamente", 'success') else: flash( 'Verifica los campos obligatorios. No ingreses valores no permitidos', 'error') return redirect( url_for("get_update_user", id_data=request.form.get("id_data"))) else: abort(401)