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