25
by drtomc
A bit more work on the userdb stuff. |
1 |
import pg |
2 |
||
3 |
def getCredentials(db, login): |
|
4 |
cred = {} |
|
5 |
||
6 |
res = db.query('SELECT users.nick FROM users WHERE users.login=\'' + login + '\'').dictresult() |
|
7 |
if len(res) <> 1: |
|
8 |
return None |
|
9 |
cred['nick'] = res[0]['nick'] |
|
10 |
||
11 |
res = db.query('SELECT groupid FROM group_members WHERE login=\'' + login + '\'').dictresult() |
|
12 |
cred['groups'] = map(lambda x: x.get('groupid'), res) |
|
13 |
||
14 |
res = db.query('SELECT role FROM roles WHERE login=\'' + login + '\'').dictresult() |
|
15 |
if len(res) <> 1: |
|
16 |
return None |
|
17 |
cred['role'] = res[0]['role'] |
|
18 |
||
19 |
return cred |
|
20 |
||
21 |
def contains(m, l): |
|
22 |
for i in l: |
|
23 |
if m == i: |
|
24 |
return True |
|
25 |
return False |
|
26 |
||
27 |
db = pg.connect('tom', 'localhost', 5432, None, None, 'tom', 'sh0r3ham') |
|
28 |
c = getCredentials(db, 'conway') |
|
29 |
||
30 |
if c['role'] != 'student' or contains('2007-INFO10001-321', c['groups']): |
|
31 |
print c['nick'] + ' may view files for group \'2007-INFO10001-321\'.' |
|
32 |