user.py 1.19 KB
Newer Older
Vladislav Rykov's avatar
Vladislav Rykov committed
1
from misc import with_psql
Vladislav Rykov's avatar
Vladislav Rykov committed
2
3
4
import bcrypt


Vladislav Rykov's avatar
Vladislav Rykov committed
5
6
7
8
9
10
11
12
13
14
@with_psql
def create(cur, name, password):
    query = """
    INSERT INTO
        users
    VALUES
        (%s, %s)
    """
    cur.execute(query, (name, bcrypt.hashpw(password, bcrypt.gensalt())))
    return (True,)
Vladislav Rykov's avatar
Vladislav Rykov committed
15

Vladislav Rykov's avatar
Vladislav Rykov committed
16
17
18
19
20
21
22
23
24
25
@with_psql 
def delete(cur, name):
    query = """
    DELETE FROM
        users
    WHERE
        name = %s
    """
    cur.execute(query, (name,))
    return (True,)
Vladislav Rykov's avatar
Vladislav Rykov committed
26

Vladislav Rykov's avatar
Vladislav Rykov committed
27
28
29
30
31
32
33
34
35
36
@with_psql
def update_name(cur, old_name, new_name):
    query = """
    UPDATE users SET
        name = %s
    WHERE
        name = %s
    """
    cur.execute(query, (new_name,))
    return (True,)
Vladislav Rykov's avatar
Vladislav Rykov committed
37

Vladislav Rykov's avatar
Vladislav Rykov committed
38
39
40
41
42
43
44
45
46
47
@with_psql
def update_password(cur, name, password):
    query = """
    UPDATE users SET
        password = %s
    WHERE
        name = %s
    """
    cur.execute(query, (password, name))
    return (True,)
Vladislav Rykov's avatar
Vladislav Rykov committed
48

Vladislav Rykov's avatar
Vladislav Rykov committed
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
@with_psql
def get(cur, name, password):
    query = """
    SELECT * FROM
        users
    WHERE 
        name = %s
    """
    cur.execute(query, (name,))
    user = cur.fetchall()[0]
    
    if user[1].encode('utf-8') == bcrypt.hashpw(password, user[1].encode('utf-8')):
        return (True, user)
    else:
        return (False, 'Password or username do not match')
Vladislav Rykov's avatar
Vladislav Rykov committed
64