Public Member Functions | |
| def | __init__ |
| def | setup |
| def | send_request |
| def | register |
| def | login |
| def | isActive |
| def | send_file |
Public Attributes | |
| sid | |
Manage the dialog between the client and the web backend
| def py::qo::backend::Session::__init__ | ( | self | ) |
| def py::qo::backend::Session::setup | ( | self | ) |
00194 : 00195 if not qocfg.get_profile_registered() : 00196 success, errors = self.register() 00197 if success : 00198 qocfg.set_profile_registered( True ) 00199 else : 00200 raise Exception(str(errors)) 00201 if not self.isActive() : 00202 success, errors = self.login( qocfg.get_profile_username(), qocfg.get_profile_password() ) 00203 if not success : 00204 raise Exception(str(errors)) 00205 def send_request( self, action, request ) :
| def py::qo::backend::Session::send_request | ( | self, | ||
| action, | ||||
| request | ||||
| ) |
00206 : 00207 domain, url = qocfg.get_backend_domain(), qocfg.get_backend_path() + action + ".php" 00208 00209 r = POSTRequest() 00210 r.addFileContent( "request", "request.xml", str( request ) ) 00211 for varname, mime, filename in request.attached_file : 00212 fd = open( filename, 'rb' ) 00213 r.addFileContent( varname, filename, fd.read(), mimetype = mime, encoding = None ) 00214 fd.close() 00215 00216 conn = httplib.HTTPSConnection( domain ) 00217 try : 00218 conn.request( r.name, url, r.buffer, r.header ) 00219 00220 http_response = conn.getresponse() 00221 message, status = http_response.msg, http_response.status 00222 response = BackendResponse( self, str(message) + http_response.read() ) 00223 finally : 00224 conn.close() 00225 00226 return response 00227 def register( self ) :
| def py::qo::backend::Session::register | ( | self | ) |
00228 : 00229 request = BackendRequest( self ) 00230 register = request.createElement( "register" ) 00231 register.appendChild( request.createElement( "username", qocfg.get_profile_username() ) ) 00232 register.appendChild( request.createElement( "password", qocfg.get_profile_password() ) ) 00233 request.appendChild( register ) 00234 00235 response = self.send_request( "doAuth", request ) 00236 00237 return not response.hasError(), response.getErrors() 00238 00239 def login( self, _username, _password ) :
| def py::qo::backend::Session::login | ( | self, | ||
| _username, | ||||
| _password | ||||
| ) |
00240 : 00241 00242 request = BackendRequest( self ) 00243 login = request.createElement( "login" ) 00244 login.appendChild( request.createElement( "username", _username ) ) 00245 login.appendChild( request.createElement( "password", _password ) ) 00246 request.appendChild( login ) 00247 00248 response = self.send_request( "doAuth", request ) 00249 00250 self.sid = None 00251 if not response.hasError() : 00252 sid = qo.xmlutil.readText( response.get("auth") ) 00253 if len( sid ) > 0 : 00254 self.sid = sid 00255 00256 return self.sid is not None, response.getErrors() 00257 def isActive( self ) :
| def py::qo::backend::Session::isActive | ( | self | ) |
| def py::qo::backend::Session::send_file | ( | self, | ||
| ftype, | ||||
| filename, | ||||
| mime_type | ||||
| ) |
00265 : 00266 00267 checksum = md5.new(open(filename,'rb').read()).hexdigest() 00268 00269 request = BackendRequest( self, doAuth = True ) 00270 upload = request.createElement( "upload" ) 00271 upload.setAttribute( "type", ftype ) 00272 upload.setAttribute( "mime", mime_type ) 00273 upload.setAttribute( "filename", filename ) 00274 upload.setAttribute( "checksum", checksum ) 00275 request.appendChild( upload ) 00276 request.attached_file.append( (ftype, mime_type, filename) ) 00277 00278 response = self.send_request( "doSend", request ) 00279 00280 return not response.hasError(), response.getErrors() 00281 00282
1.5.3