示例#1
0
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)
示例#2
0
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)