~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-15 06:34:19 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:476
Added new module: common/caps.py. This is the Capabilities centre of IVLE.
    It provides a Role class which is a rich enumeration type for Roles.
    The Role class will replace what has previously been simple strings used
    for Roles within the program. It has comparison ability to see if a Role
    is greater than or equal to another.
    This module also provides a set of capability objects which roles can be
    checked against.
dispatch/login: Rather than setting 'rolenm' string in session, now sets
    'role', a Role object.
common/db: _escape allows Role objects, which get converted into strings.
    So the DB now accepts Role objects as values (though we don't make use of
    this currently).
www/apps/tos: svn:ignore

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 a hardcoded login
32
 
    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()