Monday, November 08, 2010 at 12:02 AM.
system.verbs.apps.xmlStorageSystem.register
on register (email, password, name, adrgreeting = nil, adrdata = @xmlStorageSystem.data, adrresponse = nil) { <<Changes <<4/2/01; 7:58:22 AM by DW <<Created. Send a registerUser message to the cloud, returning true if the user is registered, false if there was a failure. <<email is an email address, it could be fictitious, it identifies the user. <<We send an MD5 hash of the password to the server. <<The user's name is displayed in various lists, it's nice to know people's real name. You may lie if you want. <<adrgreeting points to a string that will receive the English-language message from the server, but it's optional. <<7/23/01; 9:45:30 PM by JES <<The data table now supports both xmlRpcPath, and the more general rpcPath, used for both XML-RPC and for SOAP. This is for support for SOAP-based xmlStorageSystem implementations which have a request URI which is different from the value of the SOAPAction header. <<10/6/01; 1:55:51 AM by JES <<Send the serial number as a parameter in the RPC request. <<New optional parameter, adrresponse. If not nil, the entire response struct will be copied to adrresponse. This is required in order to get usernums back from an xmlStorageSystem server. <<10/6/01; 2:10:07 AM by JES <<Commented out debugging code. local (useragent); bundle { //set useragent if system.environment.isPike { useragent = "Radio UserLand"} else { useragent = "UserLand Frontier"}; useragent = useragent + " v" + Frontier.version () + ", " + system.environment.osFullNameForDisplay + " " + system.environment.osVersionString}; local (params = {"email":email, "name":name, "password":string.hashmd5 (password), "clientPort":user.inetd.config.http.port, "userAgent":useragent}); if defined (adrdata^.serialNumber) { params = params + {"serialNumber":user.prefs.serialNumber}}; local (rpcPath); if defined (adrdata^.xmlRpcPath) { rpcPath = adrdata^.xmlRpcPath}; if defined (adrdata^.rpcPath) { rpcPath = adrdata^.rpcPath}; with adrdata^ { local (result); result = xml.rpc (server, port, "xmlStorageSystem.registerUser", @params, rpcPath:rpcPath, fldebug:fldebug, protocol:protocol, soapAction:soapAction); if adrgreeting != nil { adrgreeting^ = result.message}; if adrresponse != nil { adrresponse^ = result}; return (not result.flerror)}} <<bundle //test code <<local (greeting) <<local (data); new (tableType, @data) <<bundle //init data table <<data.fldebug = false <<data.port = 80 <<data.protocol = "xml-rpc" <<data.server = "xmlstoragesystem.com" <<data.xmlRpcPath = "/RPC2" <<data.soapAction = "/xmlStorageSystem" <<data.serialNumber = user.prefs.serialNumber <<xmlStorageSystem.init () <<with user.xmlStorageSystem <<register (email, password, name, @greeting, @data) <<dialog.alert (greeting)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.