Esempio n. 1
0
    def all(self):
        db = DatabaseManager.instance(UserManager.DATABASE_NAME)
        results = []

        for data in db.query('SELECT * FROM user;'):
            results.append(User(data['username'], None, bool(data['admin']), data['id'], data['created']))

        return results
Esempio n. 2
0
 def update_object(self, obj):
     if obj.id:
         try:
             pwd_hash = pwd_context.encrypt(obj.password)
             db = DatabaseManager.instance(UserManager.DATABASE_NAME)
             db.query(UserManager.UPDATE_OBJECT_QUERY, (obj.username, pwd_hash, int(obj.admin), obj.id,))
         except Exception as e:
             print('Exception: %s' % e)
             raise ValueError('User with id does not exist.')
Esempio n. 3
0
 def authenticate(self, obj, password):
     try:
         db = DatabaseManager.instance(UserManager.DATABASE_NAME)
         data = db.query(UserManager.GET_OBJECT_QUERY, (obj.username,)).nextresult()
         if pwd_context.verify(password, data['password']):
             return True
         else:
             return False
     except:
         return False
Esempio n. 4
0
 def get_token_for_user(self, user):
     if user.id:
         try:
             db = DatabaseManager.instance(TokenManager.DATABASE_NAME)
             query = 'SELECT * FROM token WHERE userid=?;'
             token_data = db.query(query, (user.id,)).nextresult()
             return Token(user=user, token_id=token_data['id'], token=token_data['token'], created=token_data['created'])
         except:
             return None
     else:
         raise ValueError('User has no id.')
Esempio n. 5
0
 def delete_object(self, obj):
     if obj.id:
         db = DatabaseManager.instance(UserManager.DATABASE_NAME)
         db.query(UserManager.DELETE_OBJECT_QUERY, (obj.id,))
         obj.id = None
         obj.created = None
         return True
     else:
         obj.id = None
         obj.created = None
         return False
Esempio n. 6
0
 def create_object(self, obj):
     db = DatabaseManager.instance(UserManager.DATABASE_NAME)
     try:
         pwd_hash = pwd_context.encrypt(obj.password)
         db.query(UserManager.CREATE_OBJECT_QUERY, (None, obj.username, pwd_hash, int(obj.admin), time.time(),))
         user_data = db.query(UserManager.GET_OBJECT_QUERY, (obj.username,)).nextresult()
         obj.id = user_data['id']
         obj.created = user_data['created']
     except Exception as e:
         print('Exception: %s' % e)
         raise ValueError('username already exists.')
Esempio n. 7
0
 def create_object(self, obj):
     db = DatabaseManager.instance(TokenManager.DATABASE_NAME)
     try:
         if not self.get_token_for_user(obj.user):
             query_data = (None, obj.user.id, obj.token, time.time(),)
             db.query(TokenManager.CREATE_OBJECT_QUERY, params=query_data)
             token_data = db.query(TokenManager.GET_OBJECT_QUERY, (obj.token,)).nextresult()
             obj.id = token_data['id']
             obj.created = token_data['created']
         else:
             raise ValueError('token for this user already exists')
     except ValueError as e:
         raise e
Esempio n. 8
0
    def get(self, **kwargs):
        db = DatabaseManager.instance(UserManager.DATABASE_NAME)
        try:
            if 'id' in kwargs and 'username' in kwargs:
                data = db.query('SELECT * FROM user WHERE id=? AND username=?;', (kwargs['id'], kwargs['username'],)).nextresult()
            elif 'id' in kwargs:
                data = db.query('SELECT * FROM user WHERE id=?;', (kwargs['id'],)).nextresult()
            elif 'username' in kwargs:
                data = db.query('SELECT * FROM user WHERE username=?;', (kwargs['username'],)).nextresult()
            else:
                raise ValueError("Missing 'id' or 'username' kwargs.")

            if data:
                return User(data['username'], None, bool(data['admin']), data['id'], data['created'])
            else:
                return None
        except Exception as e:
            return None
Esempio n. 9
0
    def all(self):
        join = """
        SELECT user.id AS user_id,
        user.username,
        user.admin,
        user.created AS user_created,
        token.id AS token_id,
        token.token,
        token.created AS token_created
        FROM user INNER JOIN token ON token.userid = user.id ORDER BY user.username, token.created;
        """
        results = []

        db = DatabaseManager.instance(TokenManager.DATABASE_NAME)
        for data in db.query(join):
            user = User(data['username'], None, bool(data['admin']), data['user_id'], data['user_created'])
            token = Token(user, data['token_id'], data['token'], data['token_created'])
            results.append(token)

        return results
Esempio n. 10
0
 def get(self, **kwargs):
     if 'token' in kwargs:
         join = """
         SELECT user.id AS user_id,
         user.username,
         user.admin,
         user.created AS user_created,
         token.id AS token_id,
         token.token,
         token.created AS token_created
         FROM user INNER JOIN token ON token.userid = user.id WHERE token.token=?;
         """
         db = DatabaseManager.instance(TokenManager.DATABASE_NAME)
         try:
             data = db.query(join, (kwargs['token'],)).nextresult()
             user = User(data['username'], None, bool(data['admin']), data['user_id'], data['user_created'])
             token = Token(user, data['token_id'], data['token'], data['token_created'])
             return token
         except:
             return None
     else:
         raise ValueError("Expecting 'token' in arguments.")
Esempio n. 11
0
 def delete_object(self, obj):
     if obj.id:
         db = DatabaseManager.instance(TokenManager.DATABASE_NAME)
         db.query(TokenManager.DELETE_OBJECT_QUERY, (obj.id,))
     obj.id = None
     obj.created = None
Esempio n. 12
0
 def drop_table(self):
     db = DatabaseManager.instance(TokenManager.DATABASE_NAME)
     db.query(TokenManager.DROP_TABLE_QUERY)
Esempio n. 13
0
 def create_table(self):
     db = DatabaseManager.instance(TokenManager.DATABASE_NAME)
     if not db.table_exists('token'):
         db.query(TokenManager.CREATE_TABLE_QUERY)
Esempio n. 14
0
 def count(self):
     db = DatabaseManager.instance(TokenManager.DATABASE_NAME)
     return db.query(TokenManager.COUNT_OBJECT_QUERY, params=None, fetchall=False).nextresult()['COUNT(*)']
Esempio n. 15
0
 def count(self):
     db = DatabaseManager.instance(UserManager.DATABASE_NAME)
     return db.query(UserManager.COUNT_OBJECT_QUERY).nextresult()['COUNT(*)']