Tuesday, March 08, 2011 at 12:00 AM.
system.verbs.builtins.opmlEditor.member.signin
on signin (urlRedirect) { <<Changes <<3/6/11; 6:36:11 PM by DW <<Cookie-based signin. If it's a post, check adrpostresult. If true, the user validated, send him to the home page (probably). If false, display the returned HTML. <<http://replay.waybackmachine.org/20000510220658/http://home.netscape.com/newsref/std/cookie_spec.html local (pta = html.getpagetableaddress (), t, now = clock.now ()); pta^.title = "Sign in"; <<adrpostresult^ = false //not a post, or didn't validate bundle { //initial setup of t new (tabletype, @t); t.message = ""; t.username = ""}; <<scratchpad.signinparams = pta^; edit (@scratchpad.signinparams) if pta^.method == "POST" { local (args); new (tabletype, @args); webserver.parseargs (pta^.requestbody, @args); <<scratchpad.args = args; edit (@scratchpad.args) if opmlEditor.member.validate (args.username, args.password) { local (adrgroup = opmlEditor.member.initGroup ()); local (cookievalue = "username=" + args.username + "&password=" + args.password); webserver.util.setCookie (pta, adrgroup^.cookiename, cookievalue, adrgroup^.cookiedomain, adrgroup^.cookieexpires); <<scratchpad.signinparams = pta^; edit (@scratchpad.signinparams) <<adrpostresult^ = true webserver.redirect (pta, urlRedirect); return ("")} else { t.username = args.username; //save the trouble of entering it again t.message = "Incorrect username or password."}}; return (string.multiplereplaceall (string (opmlEditor.data.outlines.signInTemplate), @t, false, "<%", "%>"))}
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.