Changeset 180 for oss/oidtool
- Timestamp:
- 12/28/06 05:26:19 (2 years ago)
- Files:
-
- oss/oidtool/oidtool.py (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
oss/oidtool/oidtool.py
r178 r180 65 65 66 66 class OpenIDTool: 67 def __init__(self, store, base_auth_path, session =None, session_name=DEFAULT_SESSION_NAME):67 def __init__(self, store, base_auth_path, session_name=DEFAULT_SESSION_NAME): 68 68 """ 69 69 This tool provides a fairly easy way to add a OpenID consumer to your CherryPy … … 93 93 really flexible. 94 94 95 session -- an object that respects the dictionnary interface and which will hold96 every session. When not provided it defaults to the cherrypy.session object. In that case97 you must not forget to enable the session tool itself.98 99 95 session_name -- name to give to the session node within the session object (when using 100 96 a cookie this is the cookie name for instance) 101 97 """ 102 98 self.store = store 103 self.session = session104 99 self.session_name = session_name 105 100 self.base_auth_path = base_auth_path + '/' … … 110 105 111 106 def get_session(self): 112 oidsession = self.session.get(self.session_name, None)107 oidsession = cherrypy.session.get(self.session_name, None) 113 108 114 109 if not oidsession or not isinstance(oidsession, dict): … … 118 113 sid = randomString(16, '0123456789abcdef') 119 114 oidsession['sid'] = sid 120 self.session[self.session_name] = oidsession121 self.session[self.session_name]['status'] = UNKNOWN122 123 return self.session[self.session_name]115 cherrypy.session[self.session_name] = oidsession 116 cherrypy.session[self.session_name]['status'] = UNKNOWN 117 118 return cherrypy.session[self.session_name] 124 119 125 120 def is_processing(self): 126 if self.session.has_key(self.session_name):127 if 'status' in self.session[self.session_name]:128 if self.session[self.session_name]['status'] in [PROCESSING, AUTHENTICATED]:121 if cherrypy.session.has_key(self.session_name): 122 if 'status' in cherrypy.session[self.session_name]: 123 if cherrypy.session[self.session_name]['status'] in [PROCESSING, AUTHENTICATED]: 129 124 return True 130 125 return False 131 126 132 127 def is_authenticated(self): 133 if self.session.has_key(self.session_name):134 if 'status' in self.session[self.session_name]:135 if self.session[self.session_name]['status'] == AUTHENTICATED:128 if cherrypy.session.has_key(self.session_name): 129 if 'status' in cherrypy.session[self.session_name]: 130 if cherrypy.session[self.session_name]['status'] == AUTHENTICATED: 136 131 return True 137 132 return False … … 148 143 return 149 144 150 if not self.session:151 self.session = cherrypy.session152 153 145 # this method is always called so we check if we haven't already 154 146 # been authenticated or if we are not in the middle of … … 183 175 redirect_url = request.redirectURL(cherrypy.request.base, return_to) 184 176 185 self.session[self.session_name]['status'] = PROCESSING177 cherrypy.session[self.session_name]['status'] = PROCESSING 186 178 raise cherrypy.HTTPRedirect(redirect_url) 187 179 … … 197 189 return 198 190 199 if not self.session:200 self.session = cherrypy.session201 202 191 # If we are already authenticated then we don't apply this step 203 192 # any further … … 207 196 oidconsumer = consumer.Consumer(self.get_session(), self.store) 208 197 209 self.session[self.session_name]['status'] = UNKNOWN198 cherrypy.session[self.session_name]['status'] = UNKNOWN 210 199 211 200 # Ask the library to check the response that the server sent … … 214 203 # the return type. 215 204 info = oidconsumer.complete(cherrypy.request.params) 216 self.session[self.session_name]['info'] = info205 cherrypy.session[self.session_name]['info'] = info 217 206 if info.status == consumer.FAILURE and info.identity_url: 218 207 # In the case of failure, if info is non-None, it is the … … 234 223 # i-name registration expires and is bought by someone else. 235 224 pass 236 self.session[self.session_name]['status'] = AUTHENTICATED225 cherrypy.session[self.session_name]['status'] = AUTHENTICATED 237 226 cherrypy.request.params = {} 238 227 raise cherrypy.HTTPRedirect(cherrypy.url(cherrypy.request.path_info))
