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

« back to all changes in this revision

Viewing changes to www/auth/authenticate.py

  • Committer: mattgiuca
  • Date: 2008-02-05 01:41:15 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:409
Moved www/conf and www/common to a new directory lib. This separates the "web"
part of IVLE from what is becoming less web oriented (at least from Apache's
standpoint).
Modified setup.py to install this lib directory correctly and write conf in
the right place. Also adds the lib directory to ivle.pth.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
# Module: authenticate
19
19
# Author: Matt Giuca
20
 
# Date:   21/12/2007
 
20
# Date:   1/2/2008
21
21
 
22
22
# Provides a mechanism for authenticating a username and password, and
23
23
# returning a yes/no response.
24
24
 
 
25
import common.db
 
26
 
25
27
def authenticate(username, password):
26
28
    """Determines whether a particular username/password combination is
27
 
    valid. Returns True or False. The password is in cleartext."""
 
29
    valid. The password is in cleartext.
 
30
 
 
31
    Returns None if failed to authenticate.
 
32
    Returns a dictionary containing the user's login fields (including
 
33
    "login", "nick" and "fullname") on success.
 
34
    """
 
35
 
 
36
    # TODO.
 
37
    # Just authenticate against the DB at the moment.
 
38
    # Later we will provide other auth options such as LDAP.
28
39
 
29
40
    # WARNING: Both username and password may contain any characters, and must
30
41
    # be sanitized within this function.
31
 
    # TEMP: Just allow any user to log in
32
 
    return True
33
 
    ## TEMP: Just a hardcoded login
34
 
    #return username == 'user' and password == 'pass'
 
42
    # (Not SQL-sanitized, just sanitized to our particular constraints).
 
43
 
 
44
    # Spawn a DB object just for making this call.
 
45
    # (This should not spawn a DB connection on each page reload, only when
 
46
    # there is no session object to begin with).
 
47
    dbconn = common.db.DB()
 
48
    try:
 
49
        if not dbconn.user_authenticate(username, password):
 
50
            return None
 
51
        return dbconn.get_user(username)
 
52
    finally:
 
53
        dbconn.close()