Ejemplo n.º 1
0
 def test_user_can_be_created(self):
     user = self.createUser()
     login = self.loginUser()
     
     role = Role(
         title = 'Cashier'
     )
     session.add(role)
     session.commit()
     
     with self.client:
         self.client.post(url_for('nonAuth.login'), data = login.data)
         
         response = self.client.post(
             url_for('auth.createUser'), 
             data = dict(
                 username = '******',
                 password = '******',
                 active = 'ACTIVE',
                 role = role.id
             )
         )
         
         users = User.query.all()
         self.assertTrue(users[1].username == 'Kwaghbee')
         self.assertRedirects(response, url_for('auth.getUsers'))
Ejemplo n.º 2
0
def add_user():
    data = request.json
    username = data['username']

    payload = {}

    # Check if username exists
    user = session.query(User).filter(User.username == username).first()
    if user:
        payload['status'] = False
        payload['message'] = 'username %s already exists.' % (username)
        resp = jsonify(payload)
        resp.status_code = 403
        return resp

    try:
        # Add user to database
        new_user = User(username=username)
        session.add(new_user)
        session.commit()
    except:
        # Error saving event to database
        payload['status'] = False
        payload['message'] = 'error creating user.'
        resp = jsonify(payload)
        resp.status_code = 500
        return resp

    # Success response
    payload['status'] = True
    payload['message'] = 'user %s created successfuly.' % (username)
    resp = jsonify(payload)
    resp.status_code = 201
    return resp
Ejemplo n.º 3
0
async def employee_post(employees: Employees) -> Any:
    employees = list(map(lambda x: EmployeeDB(**x.dict()),
                         employees.employees))
    for employee in employees:
        session.add(employee)

    session.commit()
    return ({'message': 'success'})
Ejemplo n.º 4
0
def new_broker_entry():
    """add new broker to the journal"""
    new_broker = create_broker_from_cli()
    session.add(new_broker)
    session.commit()
    while click.confirm('do you want to continue?', abort=False):
        new_broker = create_broker_from_cli()
        session.add(new_broker)
        session.commit()
Ejemplo n.º 5
0
async def employee_put(id: str, employee: Employee) -> Any:
    curr_empl = session.query(EmployeeDB) \
        .filter(EmployeeDB.id == id) \
        .one()
    for key, value in employee.dict().items():
        setattr(curr_empl, key, value)
    session.commit()

    return ({'message': 'success'})
Ejemplo n.º 6
0
def create_user(user: UserSchema) -> User:
    """
        Add a new user based on UserSchema passed
    """
    new_user = User(**user.__dict__)

    db.add(new_user)
    db.commit()

    return user
Ejemplo n.º 7
0
def add_rule():
    data = request.json
    parameter = data['parameter']
    threshold = data['threshold']

    user_list = []
    payload = {}

    # Check if rule exists
    if session.query(Rule).filter(Rule.parameter == parameter).first():
        payload['status'] = False
        payload['message'] = 'parameter %s already exists. Edit the rule instead.' % (parameter)
        resp = jsonify(payload)
        resp.status_code = 403
        return resp

    for username in data['usernames']:
        user = session.query(User).filter(User.username == username).first()

        # Check if all usernames exist
        if user:
            user_list.append(user)

        # If a username does not exist, send an error message
        else:
            payload['status'] = False
            payload['message'] = 'username %s does not exist.' % (username)
            resp = jsonify(payload)
            resp.status_code = 404
            return resp

    try:
        # Add rule to database
        new_rule = Rule(parameter=parameter,
                        threshold=threshold,
                        user=user_list)
        session.add(new_rule)
        session.commit()

    except:
        # Error saving rule to database
        payload['status'] = False
        payload['message'] = 'error creating rule.'
        resp = jsonify(payload)
        resp.status_code = 500
        return resp

    # Success response
    payload['status'] = True
    payload['message'] = 'rule for %s with threshold %d created successfuly.' % (parameter, threshold)
    resp = jsonify(payload)
    resp.status_code = 201
    return resp
Ejemplo n.º 8
0
def delete_user(user_id: int) -> UserSchema:
    """
        Delete user selected by id
    """
    user = get_user(user_id)
    if user is None:
        raise HTTPException(status_code=404, detail="User not found")
    else:
        db.delete(user)
        db.commit()

    return UserSchema(**user.__dict__)
Ejemplo n.º 9
0
def edit_parameter(parameter):
    data = request.json
    threshold = data['threshold']

    user_list = []
    payload = {}

    # Check if rule exists
    rule = session.query(Rule).filter(Rule.parameter == parameter).first()
    if not rule:
        payload['status'] = False
        payload['message'] = 'parameter %s does not exist.' % (parameter)
        resp = jsonify(payload)
        resp.status_code = 404
        return resp

    for username in data['usernames']:
        user = session.query(User).filter(User.username == username).first()

        # Check if all usernames exist
        if user:
            user_list.append(user)

        # If a username does not exist, send an error message
        else:
            payload['status'] = False
            payload['message'] = 'username %s does not exist.' % (username)
            resp = jsonify(payload)
            resp.status_code = 404
            return resp

    try:
        # Edit rule
        rule.parameter = parameter
        rule.threshold = threshold
        rule.user = user_list
        session.commit()

    except:
        # Error editing rule
        payload['status'] = False
        payload['message'] = 'error editing rule.'
        resp = jsonify(payload)
        resp.status_code = 500
        return resp

    # Success response
    payload['status'] = True
    payload['message'] = 'rule for %s with threshold %d edited successfuly.' % (parameter, threshold)
    resp = jsonify(payload)
    resp.status_code = 200
    return resp
Ejemplo n.º 10
0
def new_stock_entry():
    """add new stock record to the journal"""
    if (not check_brokers()):
        print("this command requries brokers to work please enter some with the new-broker-entry command")
        return
    brokers = get_brokers(session)
    new_stock = create_stock_from_cli(brokers)
    session.add(new_stock)
    session.commit()
    while click.confirm('do you want to continue?', abort=False):
        new_stock = create_stock_from_cli(brokers)
        session.add(new_stock)
        session.commit()
    def givePermissionsTo(self, perms):
        """ Assign permissions to a user or role
            @return permissions or null
        """

        # permissions = self.getAllPermissions(perms)
        if perms is None:
            return self

        self.permissions.extend(perms)
        session.add(self)
        session.commit()
        return self
    def revokePermissions(self, perms):
        """
            Revoke a specified permission from a user.
            Permissions are only revoked if they are in the scope any of the user's
            roles. If the permission is out of scope, a RolePermissionScopeException
            is raised.
        """

        if perms is not None:
            for perm in perms:
                self.permissions.remove(perm)
                session.commit()
                return self
            return self
Ejemplo n.º 13
0
def update_user(user_id: int, user: UserSchema) -> UserSchema:
    """
        Update user selected by id and
        change him based on UserSchema passed
    """
    user_update = get_user(user_id)
    if user_update is None:
        raise HTTPException(status_code=404, detail="User not found")
    else:
        user_update.name = user.name
        user_update.password = user_update.generate_password(user.password)
        user_update.email = user.email
        user_update.username = user.username
        db.commit()

    return user_update
Ejemplo n.º 14
0
def import_csv():
    file = QFileDialog(
    )  # class que promove que os utilizadores permitam a selecao de ficheiros ou diretório
    file.setFileMode(QFileDialog.ExistingFile
                     )  # o ficheiro tem de existir para ser selecionado

    if file.exec_():  # se a procura de ficheiros incia
        filename = file.selectedFiles()[0]  # diretorio do ficheiro selecionado
        with open(filename, 'r') as csvfile:  #abre o ficheiro selecionado
            reader = csv.reader(
                csvfile)  #guarda na variavel reader o ficheiro texto csv
            next(reader)  #passa o cabeçalho
            for i in reader:
                artigo = Artigo(nome=i[0],
                                marca=i[1],
                                preco=float(i[2]),
                                imagem=i[3])  #instacia artigo
                session.add(artigo)  #adiciona a base de dados

            session.commit()  #grava na base de dados
def createPermissions():
    """ Create new system permissions."""
    permissions = getAllPermissions()
    
    form = PermissionForm()
    if not form.name.data[0].isdigit():
        if form.validate_on_submit():
            # do something here
            existing_perm = Perm.query.filter_by(name = form.name.data).first()

            if existing_perm is None:
                new_perm = Perm(
                    name = form.name.data
                )
                session.add(new_perm)
                session.commit()
                return redirect(url_for('auth.getPermissions'))
            flash('Permission already exists!')
    flash('Value entered must start with an alphabet!')
        
    return redirect(url_for('auth.getPermissions'))
def createRoles():
    """ Create new system roles."""
    roles = getAllRoles()
    
    form = RoleForm()

    if not form.title.data[0].isdigit():
        if form.validate_on_submit():
            # do something here
            existing_role = User_Role.query.filter_by(title = form.title.data).first()

            if existing_role is None:
                new_role = User_Role(
                    title = form.title.data
                )
                session.add(new_role)
                session.commit()
                return redirect(url_for('auth.getRoles'))
            flash('Role already exists!')
    flash('Value entered must start with an alphabet!')

    return redirect(url_for('auth.getRoles'))
def create():
    """ Create a new user access to the system."""

    form = CreateUserForm()

    if form.validate_on_submit():
        existing_user = User.query.filter_by(
            username=form.username.data).first()

        if existing_user is None:
            user = User(username=form.username.data,
                        active=form.active.data,
                        role_id=form.role.data)
            user.set_password(form.password.data)
            session.add(user)
            session.commit()

            return redirect(url_for('auth.getUsers'))
        flash('User already exists')

    return render_template('create_user.html',
                           form=form,
                           title='Create a New User.')
Ejemplo n.º 18
0
def add_event():
    data = request.json
    parameter = data['parameter']
    value = data['value']

    payload = {}

    # Check if rule exists
    rule = session.query(Rule).filter(Rule.parameter == parameter).first()
    if not rule:
        payload['status'] = False
        payload['message'] = 'parameter %s does not exist.' % (parameter)
        resp = jsonify(payload)
        resp.status_code = 404
        return resp

    try:
        # Add event to database
        new_event = Event(value=value, rule=rule)
        session.add(new_event)
        session.commit()
    except:
        # Error saving event to database
        payload['status'] = False
        payload['message'] = 'error creating event.'
        resp = jsonify(payload)
        resp.status_code = 500
        return resp

    # Success response
    payload['status'] = True
    payload['message'] = 'event for %s with value %d created successfuly.' % (
        parameter, value)
    resp = jsonify(payload)
    resp.status_code = 201
    return resp
Ejemplo n.º 19
0
 def set(self, **kwargs):
     self.model = self.model()
     for key, value in kwargs.items():
         setattr(self.model, key, value)
     session.add(self.model)
     session.commit()