Esempio n. 1
0
    def login_account(self, data):
        """Get login credentials."""
        ret_obj = {}
        err = []

        req_fields = ['username', 'password']
        if any([not data[f] for f in req_fields]):
            err.append('LOG00001')

        if not err:
            uname = data['username']
            pwrd = Tools().sha1(app.config['SALT'] + data['password'].lower())

            result = self.__session.query(T_account).filter(
                T_account.username == uname).first()

            if result:
                if result.password == pwrd:
                    ret_obj['token'] = result.token
                    ret_obj['id'] = result.id
                    ret_obj['username'] = result.username
                    ret_obj['accounttype'] = result.acc_type
                else:
                    err.append('LOG00002')
            else:
                err.append('LOG00002')

        Tools.close_all_connection(self.__engine, self.__session)

        return ret_obj, err
Esempio n. 2
0
    def add_new_account(self, data):
        """Add new admin to database."""
        ret_obj = {}
        err = []
        clean_data, err = self.__validate_new_account(data)

        if not err:
            table = T_account()
            try:
                for key, value in clean_data.items():
                    setattr(table, key, value)
                self.__session.add(table)
            except Exception as exc:
                Tools.log(exc, err=True)
                err.append('ACC00004')
            else:
                self.__session.commit()

        Tools.close_all_connection(self.__engine, self.__session)

        return ret_obj, err
Esempio n. 3
0
    def get_account(self, data):
        """Get list of accounts."""
        ret_obj = []
        err = []
        allowed_param = ['username', 'acc_type']
        ret_columns = [
            'username', 'created_by', 'datecreated', 'acc_type', 'active'
        ]
        search_filter = []

        for key in allowed_param:
            if data.get(key) not in (None, ''):
                search_filter.append(getattr(T_account, key) == data[key])

        offset = Tools.pagination(data['limit'], data['page'])

        try:
            if search_filter:
                result = self.__session.query(T_account).filter(
                    *search_filter).order_by(T_account.id).limit(
                        data['limit']).offset(offset).all()

            else:
                result = self.__session.query(T_account).order_by(
                    T_account.id).limit(data['limit']).offset(offset).all()
        except Exception as exc:
            Tools.log(exc, err=True)
            err.append('ACC00005')
        else:
            for d in result:
                r = d.toJSON(*ret_columns)
                ret_obj.append(r)

        Tools.close_all_connection(self.__engine, self.__session)

        return ret_obj, err