コード例 #1
0
def createIsValid(formCU, oldEmail=None, oldUsuario=None, usuarioSesion=False):
    ok = True
    msj = ""
    if not formCU.validate():
        ok = False
    if (not re.match(
            r"^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$",
            request.form['email'])):
        ok = False
        formCU.email.errors.append("Ingrese un email válido")
    else:
        #valido si existe el email
        if oldEmail == None or oldEmail != request.form['email']:
            if User.find_by_email(request.form['email']):
                ok = False
                formCU.email.errors.append("El email ya existe")
    if (not re.match(r"^[a-zA-Z0-9]*$", request.form['usuario'])):
        ok = False
        formCU.usuario.errors.append(
            "Solo puede contener caracteres alfanuméricos")
    else:
        #valido si existe el nombre de usuario
        if oldUsuario == None or oldUsuario != request.form['usuario']:
            if User.find_by_username(request.form['usuario']):
                ok = False
                formCU.usuario.errors.append("El usuario ya existe")
    if not usuarioSesion and not request.form.getlist("roles"):
        ok = False
        msj = "Seleccione al menos un rol"
    if not ok:
        raise Exception(msj)
    return ok
コード例 #2
0
def authenticate_by_google(user_info):
    User.db = get_db()
    user = User.find_by_email(user_info['email'])
    if not user:
        User.create_by_google(user_info)
        user = User.find_by_username(user_info['email'])
    login(user)
    return True
コード例 #3
0
def unique_user(js, field):
    User.db = get_db()
    user = User.find_by_username(field)
    if user != None:
        if js: return "Este usuario ya se encuentra registrado"

        flash("El usuario que intenta utilizar ya existe", "negative")
        return 1
    else:
        return 0
コード例 #4
0
def save():
    id = request.form["id"]
    edit_user = to_usuario(request.form)
    user = User.find_by_username(edit_user.username)
    user_same = User.find_by_id(id)
    if user is None:
        User.update(edit_user, request.form.getlist("rol"), id)
        return redirect(url_for('user_index'))
    elif (user_same.username == edit_user.username
          or user_same.email == edit_user.email) and user is None:
        User.update(edit_user, request.form.getlist("rol"), edit_user.id)
        return redirect(url_for('user_index'))
    else:
        mensaje = "El usuario ya existe"
        return render_template('user/index.html', mensaje=mensaje)
コード例 #5
0
def create():
    if not authenticated(session):
        abort(401)

    new_user = to_usuario(request.form)
    user = User.find_by_username(new_user.username)
    if user is None:
        User.save(new_user, request.form.getlist("rol"))
        return redirect(url_for('user_index'))
    else:
        mensaje = "El usuario ya existe"
        return render_template('user/new.html',
                               mensaje=mensaje,
                               roles=RolModel.all(),
                               nombre=new_user.first_name,
                               apellido=new_user.last_name,
                               usuario=new_user.username,
                               correo=new_user.email)
コード例 #6
0
def store():
    if not authenticated(session):
        abort(401)
    #Chequea permiso
    User.db = get_db()
    if (User.tiene_permiso(session['id'], 'usuario_new')):
        if request.method == "POST" and forms.ValidateUser(
                request.form).validate():
            if (request.form['password'] != request.form['password_repeat']):
                flash('Las contraseñas no coinciden', 'error')
            #verifica los roles enviados
            elif (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(request.form['username']):
                flash("Ya existe un usuario con ese nombre de usuario",
                      'error')
            elif User.find_by_email(request.form['email']):
                flash("Ya existe un usuario con ese email", 'error')
            else:
                User.create(request.form)
                user = User.find_by_email_and_pass(request.form['email'],
                                                   request.form['password'])
                if request.form.get("rol1") != None:
                    User.set_role(user['id'], 1)
                if request.form.get("rol2") != None:
                    User.set_role(user['id'], 2)
                if request.form.get("rol3") != None:
                    User.set_role(user['id'], 3)
                flash("Usuario agregado correctamente", 'success')
        else:
            flash(
                'Verifica los campos obligatorios. No ingreses valores no permitidos',
                'error')
        return redirect(url_for('panel_usuarios'))
    else:
        abort(401)
コード例 #7
0
def create():
    #Auth check
    auth.authenticated_or_401()

    if request.method == "POST":
        User.db = get_db()
        if (not User.has_permission(session['id'],'usuario_new')):
            abort(401)
        else:
            post_data = request.get_json() #Obtención de información
            errors = [] #Errores

            #Chequeo username
            if User.find_by_username(post_data['username']):                
                errors.append({'name': 'username', 'message': 'El nombre de usuario ingresado ya existe'})
            #Chequeo email
            if User.find_by_email(post_data['email']):
                errors.append({'name': 'email', 'message': 'El email ingresado ya existe'})
            #Chequeo passwords
            if (post_data['password'] != post_data['password_confirm']):
                errors.append({'name': 'password', 'message': 'Las contraseñas ingresadas no coinciden'})

            form = forms.ValidateUser.from_json(post_data, skip_unknown_keys=True)
            if (form.validate() and len(errors) == 0):
                #Password hashing
                password = sha256_crypt.encrypt(post_data['password'])
                #Creacion de usuario
                User.create(post_data, password)
                new_user = User.find_by_email(post_data['email'])
                update_roles(new_user['user_id'], post_data)
                response_object = {'status': 'success', 'message': 'Se agregó 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)