Exemplo n.º 1
0
 def delete(self, cursor):
     sql = '''
     DELETE FROM users WHERE id=%s
     '''
     cursor.execute(sql, (self.id, ))
     self._id = -1
     connect1().close()
     return True
Exemplo n.º 2
0
def list_all_messages(username, password):
    if User.load_user_by_username(connect1().cursor(), username) == None:
        print('This username doesn\'t exists, submit a correct username')
    else:
        user1 = User.load_user_by_username(connect1().cursor(), username)
        if check_password(str(password), user1.hashed_password):
            messages = user1.load_messages_by_user_id(connect1().cursor())
            return messages
        else:
            print('The submitted password is incorrect')
Exemplo n.º 3
0
def delete_user(username, password):
    if User.load_user_by_username(connect1().cursor(), username) == None:
        print('This username doesn\'t exists, submit a correct username')
    else:
        user1 = User.load_user_by_username(connect1().cursor(), username)
        if check_password(str(password), user1.hashed_password):
            user1.delete(connect1().cursor())
            connect1().close()
            return f"User {username} has been successfully removed"
        else:
            print('The submitted password is incorrect')
Exemplo n.º 4
0
def create_user(username, password):
    if len(password) < 8:
        print('password is too short')
    elif User.load_user_by_username(connect1().cursor(), username) != None:
        print('This username already exists, choose a different one')
    else:
        a = User(username, password)
        cursor = connect1().cursor()
        a.save_to_db(cursor)
        connect1().close()
        return "User created"
Exemplo n.º 5
0
 def load_all_users(cursor):
     sql = '''
     SELECT id, username, hashed_password FROM users
     '''
     users = []
     cursor.execute(sql)
     for row in cursor.fetchall():
         id_, username, hashed_password = row
         loaded_user = User()
         loaded_user._id = id_
         loaded_user.username = username
         loaded_user._hashed_password = hash_password
         users.append(loaded_user)
         connect1().close()
     return users
Exemplo n.º 6
0
 def save_to_db(self, cursor):
     if self._id == -1:
         sql = """INSERT INTO users(username, hashed_password)
                         VALUES(%s, %s) RETURNING id"""
         values = (self.username, self.hashed_password)
         cursor.execute(sql, values)
         self._id = cursor.fetchone()[0]  # or cursor.fetchone()['id']
         return True
     else:
         sql = """UPDATE Users SET username=%s, hashed_password=%s
                        WHERE id=%s"""
         values = (self.username, self.hashed_password, self.id)
         cursor.execute(sql, values)
         connect1().close()
         return True
Exemplo n.º 7
0
 def load_messages_by_user_id(self, cursor):
     sql = f'''
         SELECT id, from_id, to_id, text, creation_date FROM messages
         WHERE to_id = '{self.id}'
         '''
     messages = []
     cursor.execute(sql)
     for row in cursor.fetchall():
         id_, from_id, to_id, text, creation_date = row
         loaded_message = Messages(from_id, to_id, text)
         loaded_message._id = id_
         loaded_message.creation_date = creation_date
         messages.append(loaded_message)
     connect1().close()
     return messages
Exemplo n.º 8
0
def change_password(username, password, new_pass):
    if User.load_user_by_username(connect1().cursor(), username) == None:
        print('This username doesn\'t exists, submit a correct username')
    else:
        user1 = User.load_user_by_username(connect1().cursor(), username)
        if check_password(str(password), user1.hashed_password):
            if len(new_pass) < 8:
                print('Password should have minimum 8 characters')
            else:
                user1.hashed_password = hash_password(new_pass, 'salt')
                user1.save_to_db(connect1().cursor())
                connect1().close()
                return "New password has been set"
        else:
            print('The submitted password is incorrect')
Exemplo n.º 9
0
 def load_user_by_id(cursor, id_):
     sql = '''
     SELECT id, username, hashed_password FROM users
     WHERE id = %s
     '''
     cursor.execute(sql, (id_, ))
     data = cursor.fetchone()
     connect1().close()
     if data:
         id_, username, hashed_password = data
         loaded_user = User(username)
         loaded_user._id = id_
         loaded_user._hashed_password = hashed_password
         return loaded_user
     else:
         return None
Exemplo n.º 10
0
 def load_all_messages(cursor):
     sql = '''
     SELECT id, from_id, to_id, text FROM messages
     '''
     messages = []
     cursor.execute(sql)
     for row in cursor.fetchall():
         id_, from_id, to_id, text = row
         loaded_message = Messages
         loaded_message._id = id_
         loaded_message.from_id = from_id
         loaded_message.to_id = to_id
         loaded_message.text = text
         messages.append(loaded_message)
         connect1().close()
     return messages
Exemplo n.º 11
0
def execute_query(query, return_result=True, connection_method = connect1()):
    connection_method.cursor().execute(query)
    result = []
    if return_result:
        for item in connect().cursor():
            result.append(item)
    connect().close()
    return result
Exemplo n.º 12
0
 def save_to_db(self, cursor):
     if self._id == -1:
         sql = """INSERT INTO messages(from_id, to_id, text, creation_date)
                          VALUES(%s, %s, %s, %s) RETURNING id"""
         values = (self.from_id, self.to_id, self.text,
                   datetime.date.today())
         cursor.execute(sql, values)
         self._id = cursor.fetchone()[0]  # or cursor.fetchone()['id']
         connect1().close()
         return True
     else:
         sql = """UPDATE messages SET from_id=%s, to_id=%s, text = %s, creation_date=%s
                         WHERE id=%s"""
         values = (self.from_id, self.to_id, self.id, self.text,
                   datetime.date.today())
         cursor.execute(sql, values)
         connect1().close()
         return True
Exemplo n.º 13
0
def send_a_massage(username, password, to_id, text):
    if User.load_user_by_username(connect1().cursor(), username) == None:
        print('This username doesn\'t exists, submit a correct username')
    else:
        user1 = User.load_user_by_username(connect1().cursor(), username)
        if check_password(str(password), user1.hashed_password):
            a = User.load_user_by_id(connect1().cursor(), to_id)
            if a != None:
                if len(text) < 255:
                    from_id = user1.id
                    message1 = Messages(from_id, to_id, text)
                    message1.save_to_db(connect1().cursor())
                    return "Message sent"
                else:
                    print('Your message is too long, should be maximum 255 characters')
            else:
                print("Receiver\'s id is incorrect")
        else:
            print('Wrong password')
Exemplo n.º 14
0
from functions import execute_query
from connection import connect, connect1

# Database

query = '''CREATE DATABASE aplikacja;'''

try:
    execute_query(query, False, connect())
except Exception:
    print("taka baza danych już istnieje")

#connecting to aplikacja database

connect1()

# Users and messages tables

query_users_table = '''
    CREATE TABLE users(
    id serial primary key,
    username varchar(255),
    hashed_password varchar(80)
    )
'''

query_messages_table = '''
    CREATE TABLE messages(
    id serial primary key,
    from_id int,
Exemplo n.º 15
0
def list_all_users():
    user1 = User.load_all_users(connect1().cursor())
    for i in user1:
        print(i.username)