Changeset 1324
- Timestamp:
- 09/02/06 18:05:33
- Files:
-
- trunk/cherrypy/lib/cptools.py (modified) (5 diffs)
- trunk/cherrypy/test/test_sessionauthenticate.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/cherrypy/lib/cptools.py
r1323 r1324 148 148 session_key = "username" 149 149 150 def check_ login_and_password(self, login, password):150 def check_username_and_password(self, username, password): 151 151 pass 152 152 … … 155 155 pass 156 156 157 def load_user_by_username(self, username):158 pass 159 160 def on_log in(self, login):161 pass 162 163 def on_ logout(self, login):164 pass 165 166 def login_screen(self, from_page='..', login='', error_msg=''):157 def on_login(self, username): 158 pass 159 160 def on_logout(self, username): 161 pass 162 163 def on_check(self, username): 164 pass 165 166 def login_screen(self, from_page='..', username='', error_msg=''): 167 167 return """<html><body> 168 168 Message: %(error_msg)s 169 169 <form method="post" action="do_login"> 170 Login: <input type="text" name=" login" value="%(login)s" size="10" /><br />170 Login: <input type="text" name="username" value="%(username)s" size="10" /><br /> 171 171 Password: <input type="password" name="password" size="10" /><br /> 172 172 <input type="hidden" name="from_page" value="%(from_page)s" /><br /> 173 173 <input type="submit" /> 174 174 </form> 175 </body></html>""" % {'from_page': from_page, ' login': login,175 </body></html>""" % {'from_page': from_page, 'username': username, 176 176 'error_msg': error_msg} 177 177 178 def do_login(self, login, password, from_page='..'):178 def do_login(self, username, password, from_page='..'): 179 179 """Login. May raise redirect, or return True if request handled.""" 180 error_msg = self.check_ login_and_password(login, password)180 error_msg = self.check_username_and_password(username, password) 181 181 if error_msg: 182 body = self.login_screen(from_page, login, error_msg)182 body = self.login_screen(from_page, username, error_msg) 183 183 cherrypy.response.body = body 184 184 return True 185 185 else: 186 cherrypy.session[self.session_key] = login187 self.on_login( login)186 cherrypy.session[self.session_key] = username 187 self.on_login(username) 188 188 raise cherrypy.HTTPRedirect(from_page or "/") 189 189 … … 191 191 """Logout. May raise redirect, or return True if request handled.""" 192 192 sess = cherrypy.session 193 login= sess.get(self.session_key)193 username = sess.get(self.session_key) 194 194 sess[self.session_key] = None 195 if login:196 self.on_logout( login)195 if username: 196 self.on_logout(username) 197 197 raise cherrypy.HTTPRedirect(from_page) 198 198 199 def check_user(self):199 def do_check(self): 200 200 """Assert username. May raise redirect, or return True if request handled.""" 201 201 sess = cherrypy.session … … 204 204 username = sess.get(self.session_key) 205 205 if not username: 206 username = self.anonymous()206 sess[self.session_key] = username = self.anonymous() 207 207 if not username: 208 208 cherrypy.response.body = self.login_screen(request.browser_url) 209 209 return True 210 210 211 # Everything is OK: user is logged in 212 if not request.user_data: 213 request.user_data = self.load_user_by_username(username) 211 self.on_check(username) 214 212 215 213 def run(self): 216 214 request = cherrypy.request 217 request.user_data = None218 219 215 path = request.path 220 216 if path.endswith('login_screen'): … … 225 221 return self.do_logout(**request.params) 226 222 else: 227 return self. check_user()223 return self.do_check() 228 224 229 225 trunk/cherrypy/test/test_sessionauthenticate.py
r1322 r1324 6 6 def setup_server(): 7 7 8 def check( login, password):9 # Dummy check_ login_and_password function10 if login!= 'login' or password != 'password':8 def check(username, password): 9 # Dummy check_username_and_password function 10 if username != 'login' or password != 'password': 11 11 return u'Wrong login/password' 12 12 … … 15 15 _cp_config = {'tools.sessions.on': True, 16 16 'tools.session_auth.on': True, 17 'tools.session_auth.check_ login_and_password': check,17 'tools.session_auth.check_username_and_password': check, 18 18 } 19 19 … … 37 37 38 38 # setup credentials 39 login_body = ' login=login&password=password&from_page=/'39 login_body = 'username=login&password=password&from_page=/' 40 40 41 41 # attempt a login

