def modificar_plan(self): if request.method == 'GET': planes = Plan.all() usuario = Usuario.encontrar_por_id(session['id']) plan_del_usuario = Plan.encontrar_por_id(usuario['plan_id']) return render_template('usuarios/modificar_plan.html', planes=planes, id_plan_del_usuario=plan_del_usuario['id']) elif request.method == 'POST': errores = [] cantidad_perfiles_del_usuario = Plan.numero_de_perfiles_del_usuario_con_id( session['id'])['COUNT(*)'] plan_nuevo = Plan.encontrar_por_id(request.form['plan_id']) if (plan_nuevo['perfiles_max'] >= cantidad_perfiles_del_usuario): # Solo entra aca cuando el usuario puede cambiar de plan Usuario.modificar_plan_id(session['id'], plan_nuevo['id']) usuario = Usuario.encontrar_por_id(session['id']) perfiles_creados = Usuario.cantidad_de_perfiles_creados_por_el_usuario_con_id( session['id']) plan = Plan.encontrar_por_id(usuario['plan_id']) mensaje_de_exito = "Enhorabuena, ¡Su plan fue actualizado con exito!" return render_template('usuarios/detalles.html', usuario=usuario, plan=plan, perfiles_creados=perfiles_creados, mensaje_de_exito=mensaje_de_exito) else: # Solo entra aca cuando el usuario tiene más perfiles creados de los que permite el plan nuevo. # Por lo tanto no se puede cambiar el plan planes = Plan.all() usuario = Usuario.encontrar_por_id(session['id']) plan_del_usuario = Plan.encontrar_por_id(usuario['plan_id']) perfiles_a_borrar = abs(plan_nuevo['perfiles_max'] - cantidad_perfiles_del_usuario) errores.append( "El usuario actual excede la cantidad maxima de perfiles permitidos, debera borrar " + str(perfiles_a_borrar) + " perfil/es para poder realizar el cambio.") return render_template( 'usuarios/modificar_plan.html', planes=planes, id_plan_del_usuario=plan_del_usuario['id'], errores=errores)
def registeruser(self): # _firstname = request.form.get('firstname', '') # _lastname = request.form.get('lastname', '') # _email = request.form.get('email', '') # _password = request.form.get('password', '') # return sendResponse(authmodel.registerUser(_firstname,_lastname,_email,_password)) errores = [] email = request.form["email"] if Usuario.existe_usuario_con_email(email): errores.append( 'El email ya esta en uso, por favor seleccione otro.') contraseña = request.form["password"] # https://kite.com/python/answers/how-to-check-if-a-string-contains-letters-in-python tiene_letras = contraseña.lower().islower() # https://stackoverflow.com/questions/5188792/how-to-check-a-string-for-specific-characters tiene_numeros = '0' in contraseña or '1' in contraseña or '2' in contraseña or '3' in contraseña or '4' in contraseña or '5' in contraseña or '6' in contraseña or '7' in contraseña or '8' in contraseña or '9' in contraseña tiene_simbolos = "'" in contraseña or '¿' in contraseña or '?' in contraseña or '¡' in contraseña or '!' in contraseña or '#' in contraseña or '@' in contraseña or '.' in contraseña or '-' in contraseña or '_' in contraseña longitud_de_caracteres_valido = (contraseña.__len__() >= 8) contraseña_valida = tiene_letras and tiene_numeros and tiene_simbolos and longitud_de_caracteres_valido if not contraseña_valida: errores.append('Contraseña inválida.') # El número de la tarjeta tiene que ser de 16 digitos # El pin de la tiene que ser de 3 digitos tarjetaNumero_valido = (request.form["tarjetaNumero"].__len__() != 16) tarjetaPin_valido = (request.form["tarjetaPin"].__len__() != 3) # https://learnandlearn.com/python-programming/python-reference/python-get-current-date # Pregunto si la fecha de expiración ingresada para la tarjeta es mayor al día de hoy ... # ... con esto compruebo si es válida o no. feha_de_hoy = datetime.today() tarjetaFechaDeExpiracion = datetime.strptime( request.form["tarjetaFechaDeExpiracion"], "%Y-%m-%d") if (feha_de_hoy >= tarjetaFechaDeExpiracion ) or tarjetaNumero_valido or tarjetaPin_valido: errores.append( 'Los datos proporcionados acerca la tarjeta de crédito no son válidos.' ) if errores: # Solo entra aca si el arreglo tiene elementos, osea que hay errores. planes = Plan.all() usuario = request.form return render_template('registrar.html', planes=planes, errores=errores, usuario=usuario) else: # Solo entra aca si el arreglo esta vacio, esto significa que no hay ... # ... errores y el registro se realiza de forma exitosa. usuario = Usuario.crear(request.form) mensaje_de_exito = "Enhorabuena, ¡Su usuario fue creado con exito!" return render_template("login.html", mensaje_de_exito=mensaje_de_exito)
def register(self): planes = Plan.all() return render_template('registrar.html', planes=planes)
def crear_perfil(self, id): errores = [] p = [] user = Usuario.encontrar_por_id(id) perfiles = Perfiles.all() planes = Plan.all() contador = 0 ok = False if user['plan_id'] == 2: for perfil in perfiles: # cuento cuantos perfiles tengo y los guardo en otro arreglo if perfil['id_usuario'] == user['id']: contador = contador + 1 p.append(perfil) print(p) if contador < 4: if request.method == 'POST': for per in p: if per['nombre'] == request.form["nombre"]: ok = True if ok == True: errores.append( "Ya existe un perfil con el nombre especificado.") else: foto = request.form['foto'] nombre = request.form['nombre'] Perfiles.crear( dict([('nombre', nombre), ('foto', foto), ('id_usuario', id)])) return redirect( url_for('ver_perfiles', id=session['id'])) else: flash('Ya no puede agregar mas contactos!!!!!') return render_template("/usuarios/crearPerfil.html", usuario=user, errores=errores) # return redirect(url_for('ver_perfiles', id=session['id'], errores=errores)) else: if user['plan_id'] == 1: for perfil in perfiles: if perfil['id_usuario'] == user['id']: contador = contador + 1 p.append(perfil) if contador < 2: if request.method == 'POST': for per in p: if per['nombre'] == request.form["nombre"]: ok = True if ok == True: errores.append( "Ya existe un perfil con el nombre especificado.") else: foto = request.form['foto'] nombre = request.form['nombre'] Perfiles.crear( dict([('nombre', nombre), ('foto', foto), ('id_usuario', id)])) return redirect( url_for('ver_perfiles', id=session['id'])) else: flash('Ya no puede agregar mas contactos!!!!!') return render_template("/usuarios/crearPerfil.html", p=p, usuario=user, errores=errores)