Changeset 838
- Timestamp:
- 06/08/06 15:39:07 (2 years ago)
- Files:
-
- dbauthplugin/0.10/dbauth/auth.py (modified) (5 diffs)
- dbauthplugin/0.10/dbauth/env.py (modified) (2 diffs)
- dbauthplugin/0.10/dbauth/perm.py (modified) (2 diffs)
- dbauthplugin/0.10/dbauth/userdir.py (modified) (3 diffs)
- dbauthplugin/0.10/install/create-tables-mysql-5.0.sql (added)
- dbauthplugin/0.10/install/create-tables-sqlite-3.0.sql (moved) (moved from dbauthplugin/0.10/install/create-tables.sql)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
dbauthplugin/0.10/dbauth/auth.py
r819 r838 32 32 """ 33 33 34 implements(IAuthenticator, INavigationContributor, ITemplateProvider, IRequestHandler) 34 implements(IAuthenticator, INavigationContributor, ITemplateProvider, 35 IRequestHandler) 35 36 36 37 def __init__(self): 37 38 self.envname = get_envname(self.env) 38 39 self.users = { # should we have defaults here? 40 "table":self.env.config.get('dbauth', 'users_table'), 41 "envname": self.env.config.get('dbauth','users_envname_field'), 42 "username": self.env.config.get('dbauth','users_username_field'), 43 "password": self.env.config.get('dbauth','users_password_field'), 44 "email": self.env.config.get('dbauth','users_email_field')} 45 self.cookies = { # should we have defaults here? 46 "table":self.env.config.get('dbauth', 'cookies_table'), 47 "envname": self.env.config.get('dbauth','cookies_envname_field'), 48 "cookie": self.env.config.get('dbauth','cookies_cookie_field'), 49 "username": self.env.config.get('dbauth','cookies_username_field'), 50 "ipnr": self.env.config.get('dbauth','cookies_ipnr_field'), 51 "unixtime": self.env.config.get('dbauth','cookies_unixtime_field')} 52 53 39 54 # IAuthenticator methods 40 55 … … 113 128 db = get_db(self.env) 114 129 cursor = db.cursor() 115 sql = """SELECT username 116 FROM trac_users 117 WHERE username= %s and password = %s 118 AND (envname = %s or envname='all')""" 130 sql = "SELECT %s " \ 131 "FROM %s " \ 132 "WHERE username= %%s and password = %%s " \ 133 " AND (envname = %%s or envname='all')" % \ 134 (self.users['username'], self.users['table']) 119 135 cursor.execute(sql, (uid, pwd, self.envname)) 120 136 row = cursor.fetchone() … … 135 151 db = get_db(self.env) 136 152 cursor = db.cursor() 137 cursor.execute("INSERT INTO trac_cookies " 138 "(envname, cookie, username, ipnr, unixtime) " 139 "VALUES (%s, %s, %s, %s, %s)", (self.envname, cookie, remote_user, 140 req.remote_addr, int(time.time()))) 153 sql = "INSERT INTO %s " \ 154 "(%s, %s, %s, %s, %s) " \ 155 "VALUES (%%s, %%s, %%s, %%s, %%s)" % \ 156 (self.cookies['table'], self.cookies['envname'], 157 self.cookies['cookie'], self.cookies['username'], 158 self.cookies['ipnr'], self.cookies['unixtime']) 159 cursor.execute(sql, (self.envname, cookie, remote_user, 160 req.remote_addr, int(time.time()))) 141 161 db.commit() 142 162 … … 157 177 db = get_db(self.env) 158 178 cursor = db.cursor() 159 cursor.execute("DELETE FROM trac_cookies " 160 "WHERE username=%s " 161 " AND envname=%s", 162 (req.authname, self.envname)) 179 sql = "DELETE FROM %s " \ 180 "WHERE %s=%%s " \ 181 " AND %s=%%s" % \ 182 (self.cookies['table'], self.cookies['username'], 183 self.cookies['envname']) 184 cursor.execute(sql, (req.authname, self.envname)) 163 185 db.commit() 164 186 self._expire_cookie(req) … … 175 197 db = get_db(self.env) 176 198 cursor = db.cursor() 177 cursor.execute("SELECT username FROM trac_cookies " 178 "WHERE cookie=%s AND envname=%s", 179 (cookie.value,self.envname)) 199 sql = "SELECT %s " \ 200 "FROM %s " \ 201 "WHERE %s=%%s " \ 202 " AND %s=%%s" % \ 203 (self.cookies['username'], self.cookies['table'], 204 self.cookies['cookie'], self.cookies['envname']) 205 cursor.execute(sql, (cookie.value,self.envname)) 180 206 row = cursor.fetchone() 181 207 if not row: dbauthplugin/0.10/dbauth/env.py
r835 r838 16 16 17 17 18 from trac.db .sqlite_backendimport *18 from trac.db import * 19 19 20 20 def get_db(env): 21 21 """Return a database connection""" 22 path = env.config.get('dbauth', 'database') 23 return SQLiteConnection(path) 22 return CentralDatabaseManager(env).get_connection() 24 23 25 24 def get_envname(env): 26 25 envroot = env.config.get('dbauth', 'envroot') 27 if envroot and envroot[-1] != "/": 28 envroot += "/" 29 else: 26 try: 27 if envroot[-1] != "/": 28 envroot += "/" 29 except: 30 30 raise TracError("No 'envroot' set in global trac.ini") 31 31 envname = env.path.replace(envroot, "") … … 33 33 34 34 35 class CentralDatabaseManager(DatabaseManager): 36 connection_uri = Option('dbauth', 'database', 'sqlite:db/trac.db', 37 """Database connection 38 [wiki:TracEnvironment#DatabaseConnectionStrings string] for this 39 project""") 40 dbauthplugin/0.10/dbauth/perm.py
r819 r838 28 28 implements(IPermissionGroupProvider) 29 29 30 def __init__(self): 31 self.perms = { # should we have defaults here? 32 "table":self.env.config.get('dbauth', 'perms_table'), 33 "envname": self.env.config.get('dbauth','perms_envname_field'), 34 "username": self.env.config.get('dbauth','perms_username_field'), 35 "groupname": self.env.config.get('dbauth','perms_groupname_field')} 36 30 37 def get_permission_groups(self, username): 31 38 groups = ['anonymous'] … … 37 44 cursor = db.cursor() 38 45 39 cursor.execute("SELECT groupname " 40 "FROM trac_permissions " 41 "WHERE (envname=%s or envname='all') " 42 " AND username=%s " 43 "GROUP BY groupname " 44 "ORDER BY groupname", (envname,username)) 46 sql = "SELECT %s " \ 47 "FROM %s " \ 48 "WHERE (%s=%%s or %s='all') " \ 49 " AND %s=%%s " \ 50 "GROUP BY %s " \ 51 "ORDER BY %s" % \ 52 (self.perms['groupname'], self.perms['table'], 53 self.perms['envname']. self.perms['envname']. 54 self.perms['username']. self.perms['groupname']. 55 self.perms['groupname'] ) 56 cursor.execute(sql, (envname,username)) 45 57 46 58 # groupnames = cursor.fetchall() dbauthplugin/0.10/dbauth/userdir.py
r819 r838 25 25 def __init__(self): 26 26 self.envname = get_envname(self.env) 27 self.perms = { # should we have defaults here? 28 "table":self.env.config.get('dbauth', 'perms_table'), 29 "envname": self.env.config.get('dbauth','perms_envname_field'), 30 "username": self.env.config.get('dbauth','perms_username_field'), 31 "groupname": self.env.config.get('dbauth','perms_groupname_field')} 27 32 28 33 # IUserDirectory methods … … 31 36 cnx = get_db(self.env) 32 37 cursor = cnx.cursor() 33 cursor.execute("SELECT username " 34 "FROM trac_permissions " 35 "WHERE (envname=%s or envname='all') " 36 "ORDER BY username", (self.envname,)) 37 38 sql = "SELECT %s " \ 39 "FROM %s " \ 40 "WHERE (%s=%%s or %s='all') " \ 41 "ORDER BY %s" % \ 42 (self.perms['username'], self.perms['table'], 43 self.perms['envname'], self.perms['envname'], 44 self.perms['username'], ) 45 cursor.execute(sql, (self.envname,)) 38 46 for username in cursor: 39 yield username,'','' 47 yield username,'','' # FIXME: don't we have email addresses in tables now? 40 48 cnx.close() 41 49 … … 43 51 db = get_db(self.env) 44 52 cursor = db.cursor() 45 cursor.execute("SELECT username " 46 "FROM trac_permissions " 47 "WHERE (envname=%s or envname='all') " 48 "ORDER BY username", (self.envname,)) 49 53 sql = "SELECT %s " \ 54 "FROM %s " \ 55 "WHERE (%s=%%s or %s='all') " \ 56 "ORDER BY %s" % \ 57 (self.perms['username'], self.perms['table'], 58 self.perms['envname'], self.perms['envname'], 59 self.perms['username'], ) 60 cursor.execute(sql, (self.envname,)) 50 61 for username in cursor: 51 62 yield username[0]
