def changePassword(): flash('Actualizar Contraseña.') userIp = session.get('userIp') username = session.get('username') changePassword = ChangePassword() context = {'userIp': userIp, 'changepassword': changePassword} if (changePassword.is_submitted()): currentPassword = changePassword.currentPassword.data password = changePassword.password.data confirmPassword = changePassword.confirmPassword.data user = getUser(username) print(user.id) if (check_password_hash(user.to_dict()['password'], currentPassword)): if (password == confirmPassword): if (currentPassword != password): updatePassword(user, generate_password_hash(password)) if (check_password_hash( getUser(username).to_dict()['password'], password)): flash('Contraseña Actualizada con Exito!!') return redirect(url_for('home')) else: flash( 'Ah ocurrido un error al actualizar la contraseña, por favor intente nuevamente.', 'error') else: flash('No puede registrar la misma contraseña.', 'error') else: flash('La nueva contraseña, no coincide.', 'error') else: flash('la contraseña actual no coincide.', 'error') return render_template('changepassword.html', **context)
def signup(): userIp = session.get('userIp') signup = SignupForm() context = {'userIp': userIp, 'signup': signup} if (signup.is_submitted()): imagen = imageValidator(signup.imagen.data) telefono = signup.telefono.data correo = signup.correo.data nombre = signup.nombre.data role = signup.role.data username = signup.username.data password = signup.password.data id = str(getNewId()) if (getUser(username) is None): passwordHash = generate_password_hash(password) userData = UserData(username, passwordHash, id, correo, nombre, role, imagen, telefono) putUser(userData) user = UserModel(userData) if (getUser(user.username) is not None): flash('Usuario Creado con Exito!!') else: flash('Creacion de usuario Fallida', 'error') else: flash('El Usuario Ya Existe!!', 'error') return redirect(url_for('home')) else: flash('Registra un Usuario.') return render_template('signup.html', **context)
def login(): userIp = session.get('userIp') login = LoginForm() context = {'userIp': userIp, 'login': login} if (login.is_submitted()): username = (login.username.data).lower() #session['username'] = login.username.data#request.form.get('username') password = login.password.data userDoc = getUser(username) if userDoc is not None: passwordFromDb = userDoc.to_dict()['password'] if check_password_hash(pwhash=passwordFromDb, password=password): userData = UserData(username=username, password=password, id=userDoc.id, correo=userDoc.to_dict()['correo'], nombre=userDoc.to_dict()['nombre'], role=userDoc.to_dict()['role'], imagen=userDoc.to_dict()['imagen'], telefono=userDoc.to_dict()['telefono'], access=userDoc.to_dict()['access'], fechadeactualizacion=userDoc.to_dict() ['fechadeactualizacion']) user = UserModel(userData) login_user(user) flash('Usario: {}, Ah iniciado sesion con exito'.format( user.username.title())) session['username'] = username return redirect(url_for('home')) else: flash("Contraseña incorrecta, vuelva a intentarlo.", 'error') else: flash("El usuario {}, No has sido encontrado.".format(username), 'error') return render_template('login.html', **context)
def updateData(): userIp = session.get('userIp') username = session.get('username') updateData = UpdateData() context = {'userIp': userIp, 'updatedata': updateData} if (updateData.is_submitted()): user = getUser(username) password = updateData.password.data if (check_password_hash(user.to_dict()['password'], password)): correo = validarData(updateData.correo.data, user.to_dict()['correo']) nombre = validarData(updateData.nombre.data, user.to_dict()['nombre']) role = validarData(updateData.role.data, user.to_dict()['role']) newUsername = validarData(updateData.username.data, user.to_dict()['username']) imagen = validarData(updateData.imagen.data, user.to_dict()['imagen']) telefono = validarData(updateData.telefono.data, user.to_dict()['telefono']) updateUserData(user, correo, nombre, role, newUsername, imagen, telefono, user.to_dict()['telefono']) flash('Actualizacion realizada con Exito.') return redirect(url_for('account')) else: flash('Contraseña Invalida.', 'error') else: flash('Actualizar Informacion de {}.'.format(username.title())) return render_template('updatedata.html', **context)
def externalUserData(username=None): userIp = session.get('userIp') user = getUser(username) registros = getCurrentRegister(user.id) context = { 'userIp': userIp, 'user': user, 'update': 2, 'name': user.to_dict()['nombre'], 'registros': registros if len(registros) > 0 else None } return render_template('externaluserdata.html', **context)
def deleteUser(username=None): userIp = session.get('userIp') user = getUser(username) delete = DeleteUser() context = {'userIp': userIp, 'user': user, 'update': 2, 'delete': delete} if (delete.is_submitted()): user = getUser(username) currentPassword = delete.password.data if (check_password_hash(user.to_dict()['password'], currentPassword)): flash('El usuario {} fue borrado Exitosamente.'.format(username)) deleteRegister(user.id) phoneDb = getPhoneByUserId(user.id) deleteFromPhones(phoneDb.id) # print('>>>>', phonesDeleted) deleteUserFromDb(user.id) return redirect(url_for('home')) else: flash('la contraseña actual no coincide.', 'error') else: flash('Seguro que desea eliminar al usuario {}'.format(username)) return render_template('deleteUser.html', **context)
def registros(): userIp = session.get('userIp') registros = RegisterAccess() context = {'userIp': userIp, 'registros': registros} if (registros.is_submitted()): descripcion = registros.descripcion.data username = session.get('username') user = getUser(username) flash(' Registro del usuario {} creado exitosamente!'.format(username)) setRegister(user.id, descripcion) return redirect(url_for('home')) return render_template('registros.html', **context)
def updateExternalData(username=None): userIp = session.get('userIp') updateExternalData = UpdateExternalData() context = { 'userIp': userIp, 'updateexternaldata': updateExternalData, 'username': username } if (updateExternalData.is_submitted()): user = getUser(username) password = updateExternalData.password.data if (check_password_hash(user.to_dict()['password'], password)): role = validarData(updateExternalData.role.data, user.to_dict()['role']) updateExternalUserData(user, role) flash('Actualizacion realizada con Exito.') return redirect(url_for('users.userData')) else: flash('Contraseña Invalida.', 'error') else: flash('Actualizar Informacion de {}.'.format(username.title())) return render_template('updateexternaldata.html', **context)
def account(): userIp = session.get('userIp') user = getUser(str(session.get('username'))) registros = getCurrentRegister(user.id) context = {'userIp': userIp, 'update': 1, 'registros': registros} return render_template('account.html', **context)