예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
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)
예제 #8
0
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)
예제 #9
0
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)