~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to userdb/query.py

  • Committer: Matt Giuca
  • Date: 2009-04-25 14:37:42 UTC
  • mfrom: (1195.1.19 marks-fix)
  • Revision ID: matt.giuca@gmail.com-20090425143742-741mh2plk0cgib3e
Merged branch marks-fix. Fixes Google Code issue 144.

bin/ivle-marks: Completely rewritten. (Was hopelessly out-of-date, and didn't
    work at all. Now works on the current database model, and has new features
    to boot - able to select the semester and cutoff date).

ivle.worksheet.utils: Added calculate_mark, which is from the duplicated code
    in both bin/ivle-marks and ivle.webapp.tutorial.OfferingView.populate.
    Also added some extra optional arguments for calculating
    exercise/worksheet scores from a particular date.

ivle.webapp.tutorial: Call ivle.worksheet.utils.calculate_mark instead of
    manually calculating (avoid code duplication).

ivle.database: A few new methods on the Subject class, for retrieving
    offerings.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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