Example #1
0
def admin():
    users = list(Users.objects.values_list('id', 'login'))
    temperature_sensors = list(
        TemperatureSensor.objects.distinct().values_list('sensor_id',
                                                         flat=True))
    pressure_sensors = list(PressureSensor.objects.distinct().values_list(
        'sensor_id', flat=True))
    if request.method == 'POST':
        sensor_form = request.form.get('sensor')
        user_form = request.form.get('user')
        if sensor_form == 'add':
            if request.form.get('sensor_type') == 'temperature':
                TemperatureSensor.create(sensor_id=uuid.uuid4(),
                                         measure_timestamp=datetime.utcnow(),
                                         value=0)
                return redirect(url_for('admin'))
            elif request.form.get('sensor_type') == 'pressure':
                PressureSensor.create(sensor_id=uuid.uuid4(),
                                      measure_timestamp=datetime.utcnow(),
                                      value=0)
                return redirect(url_for('admin'))
        elif sensor_form == 'drop':
            id_for_drop = request.form.get('id_for_drop')
            if (request.form.get('sensor_type')
                    == 'temperature') and id_for_drop:
                TemperatureSensor(sensor_id=uuid.UUID(id_for_drop)).delete()
                return redirect(url_for('admin'))
            elif (request.form.get('sensor_type')
                  == 'pressure') and id_for_drop:
                PressureSensor(sensor_id=uuid.UUID(id_for_drop)).delete()
                return redirect(url_for('admin'))
        login = request.form.get('login')
        if (user_form == 'add') and login:
            user = Users.objects(
                Users.login == login).allow_filtering().first()
            if user:
                flash(
                    'Пользователь с таким логином уже существует, введите другой логин'
                )
            else:
                password = secrets.token_hex(4)
                Users.create(id=uuid.uuid4(),
                             login=login,
                             password=generate_password_hash(password))
                flash('Добавлен пользователь ' + login + ' пароль: ' +
                      str(password))
                return redirect(url_for('admin'))
        elif (user_form == 'drop') and login:
            user = Users.objects(
                Users.login == login).allow_filtering().first()
            if user:
                Users(id=user.id).delete()
                return redirect(url_for('admin'))
            else:
                flash('Пользователя с таким логином не существует')
    return render_template("admin_page.html",
                           users=users,
                           temperature_sensors=temperature_sensors,
                           pressure_sensors=pressure_sensors)
def user(ctx, username='******', password='******'):
    get_env()
    app = create_app()

    with app.app_context():
        user = Users.query.filter_by(username=username).first()
        if not user:
            Users.create(username=username, password=password)
    print("User has been created")
Example #3
0
def users_register():
    request_data = request.get_json()
    email = request_data['email']
    user = Users.query.filter_by(email=email).first()
    if user:
        # NOTE: There needs to be some more logic here. TO prevent users from seeing a broken QR code.
        return jsonify(user.brief), SUCCESS

    password = request_data['password']
    if not password or password != request_data['passwordMatch']:
        return error_response(INCORRECT_PASSWORD)

    # At this point we call out to the SSI backend and send a POST request.
    # POST request is going to contain the request data so that can be used to create the VC
    r = requests.post(SSI_ENDPOINT + '/users/register',
                      json={
                          'email': email,
                          'password': password
                      })
    print(r.json())

    # Make sure we create the user in the db
    # NOTE: Password should be hashed.
    user = Users.create(email=email,
                        password=password,
                        username=email.split('@')[0])
    return jsonify(r.json()), SUCCESS
Example #4
0
def users_register():
    request_data = request.get_json()
    email = request_data['email']
    user = Users.query.filter_by(email=email).first()
    if user:
        return jsonify(user.brief), SUCCESS

    password = request_data['password']
    if not password or password != request_data['passwordMatch']:
        return error_response(INCORRECT_PASSWORD)
    user = Users.create(email=email,
                        password=password,
                        username=email.split('@')[0])
    return jsonify(user.brief), SUCCESS