/
users.py
117 lines (96 loc) · 3.14 KB
/
users.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import hashlib
from DB import *
from config import *
class User():
queryUserSelect = """
SELECT *
FROM users
WHERE id = %s"""
querySMFUserSelect = """
SELECT id_member,member_name,passwd
FROM hamsterdam.smf_members
WHERE id_member = %s"""
queryUnameSelect = """
SELECT id,username,password
FROM users
WHERE username = %s"""
querySMFUnameSelect = """
SELECT id_member,member_name,passwd
FROM hamsterdam.smf_members
WHERE member_name = %s"""
queryUidSelect = """
SELECT id,username,password
FROM users
WHERE username = %s"""
querySMFUidSelect = """
SELECT member_name
FROM hamsterdam.smf_members
WHERE id_member = %s"""
def __init__(self, i_user=0, config=None):
self.id = 0;
self.username = None;
self.password = None;
self.Config = None;
if config:
self.Config = config
else:
self.Config = Config()
self.open(i_user)
def open(self, i_user):
try:
db = conn.cursor()
except NameError:
conn = DB()
db = conn.cursor()
# Special case, used by playlist (amongst other things)
if i_user == 0:
self.id = 0
self.username = 'Random'
self.password = ''
return
if self.Config.user['backend'] == 'mysql':
db.execute(self.queryUserSelect, (i_user))
elif self.Config.user['backend'] == 'simplemachines':
db.execute(self.querySMFUserSelect, (i_user))
else:
# TODO: Throw an exception here, but I don't know how to do that
# at the moment :(
pass
row = db.fetchone()
try:
self.id = i_user
self.username = row[1]
self.password = row[2]
except:
self.id = 0
self.username = ''
self.password = ''
def get_user(self, username):
try:
db = conn.cursor()
except NameError:
conn = DB()
db = conn.cursor()
if self.Config.user['backend'] == 'mysql':
db.execute(self.queryUnameSelect, (username))
elif self.Config.user['backend'] == 'simplemachines':
db.execute(self.querySMFUnameSelect, (username))
else:
# TODO: Throw an exception here, but I don't know how to do that
# at the moment :(
pass
row = db.fetchone()
try:
self.id = row[0]
self.username = row[1]
self.password = row[2]
except:
self.id = 0
self.username = ''
self.password = ''
def passcomp(self, password):
hashpass = hashlib.sha1(self.username.lower() + password)
print "<h1> COMPARING: {0} TO: {1}".format(hashpass.hexdigest(), self.password)
if hashpass.hexdigest() == self.password:
return True
return False