1 # -----------------------------------------------------------------------
2 # Copyright (C) 2007 Georgia Public Library Service
3 # Bill Erickson <billserickson@gmail.com>
5 # This program is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU General Public License
7 # as published by the Free Software Foundation; either version 2
8 # of the License, or (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 # -----------------------------------------------------------------------
18 from osrf.log import *
22 # -----------------------------------------------------------------------
23 # Grab-bag of general utility functions
24 # -----------------------------------------------------------------------
32 ''' Unique-ify a list. only works if list items are hashable '''
39 ''' Returns true if the data provided matches what the database considers a true value '''
40 if not data or data == 'f' or str(data) == '0':
45 def login(username, password, type=None, workstation=None):
46 ''' Login to the server and get back an authtoken'''
48 log_info("attempting login with user " + username)
50 seed = osrf.ses.ClientSession.atomic_request(
52 'open-ils.auth.authenticate.init', username)
54 # generate the hashed password
55 password = md5sum(seed + md5sum(password))
57 return osrf.ses.ClientSession.atomic_request(
59 'open-ils.auth.authenticate.complete',
60 { 'workstation' : workstation,
61 'username' : username,
62 'password' : password,