Source of openid

/* appjet:version 0.1 */ import("lib-rpx""storage""quickforms"); // prepare storage if (!storage.users)     storage.users = new StorableObject(); if (!storage.rpx_api_key)     storage.rpx_api_key = "secret"; function printHeader() {     print(RPX("apps-jgate-de"));     print(DIV({id: "logo"}, IMG({src: "http://static.jgate.de/jgate-logo.gif", id: "logo"}))); } function thingsToTry() {     print(B("Here are some things to try next:"));     print(UL(         LI("Stay signed in, close your browser, and come back. You should be still signed in."),         LI("Come back after 6 hours. You should be signed out."),         LI("Sign in using a different or new OpenID. You should be requested to create a new account."),         LI("See a list of our newest ", link("/members""members"), "."),         LI("See details about your ", link("/listid""OpenID data."), " and your ", link("/request""Request"), ".")     ));     print("Visit the ", link("http://forum.appjet.com/viewtopic.php?id=740""forum"), for suggestions and comments.") } function get_main() {     page.head.write('<link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud?source=profiles" >\n');     page.head.write('<link rel="openid2.local_id" href="http://www.google.com/profiles/dvbportal" >\n');     printHeader();     if (rpx_user != undefined)     {         var identifier = rpx_user.identifier;         var user = storage.users[identifier];         // user known?         if (!user)             response.redirect("/signup");         // user is known         printp("Welcome back, " + user.displayName + ". Your last login was on " + user.loginDate);         user.loginDate = new Date();         printp(BR(""));         thingsToTry();     }     else     {         printp("Login with your existing OpenID to start using this site.");         printp("OpenID eliminates the need for multiple usernames across different websites.");         printp(link("http://openid.net/what/""Learn more - Get an OpenID"));         printp(BR(""));         thingsToTry();     } } function get_signup() {     printHeader();     // test code     if (appjet.isPreview && !rpx_user)         rpx_user = {displayName: "Test User", email: "user@example.com"};     //printp(rpx_user || "");     if (!rpx_user)     {         print(H4({className: "error"}, "OpenID not verified! Please sign in using a verified OpenID."));     }     else     {         print(H4({className: "message"}, "OpenID verified! Your new account will be associated with this ID."));         print(html("<small>*Please add required fields.</small>"));         var form = new QuickForm({});         form.addHeading("h", raw("Create a free JGate Account"));         form.addInputText("displayname", {label"User Name*", value: rpx_user.displayName || ""});         form.addInputText("email", {label"E-Mail Address*", value: rpx_user.email});         form.addSubmit("/signup""Create JGate Account");         print(form);     } } function post_signup() {     printHeader();     // test code     if (appjet.isPreview && !rpx_user)         rpx_user = {displayName: "Test User", email: "user@example.com", loginIP: "127.0.0.1", loginDate: new Date(), providerName: "Test Povider"};     if (!rpx_user)         response.redirect("/");     var identifier = rpx_user.identifier;     var userNameAvailable = true;     var emailAvailable = true;     var userName = request.param.displayname;     var email = request.param.email;     user = { displayName: rpx_user.displayName, userName: userName, loginIP: rpx_user.loginIP,         email: email, joinDate: rpx_user.loginDate,         loginDate: rpx_user.loginDate, provider: rpx_user.providerName };     storage.users[identifier] = user;     print(H3("Thank you for choosing JGate!"));     printp("You are now ready to use our service."); } function get_listid() {     printHeader();     need_login();     printp(B("Your OpenID lists the following:"));     printp(rpx_user || "- not signed in -");     printp(link("/""« Back")); } function get_request() {     printHeader();     need_login();     printp(B("Your Request lists the following:"));     printp(request);     printp(link("/""« Back")); } function get_members() {     var dateSorted = new StorableCollection();     printHeader();     need_login();     printp(B("Welcome our newest members:"));     print(html("<ul>"));     eachProperty(storage.users, function(obj)     {         print(LI(storage.users[obj].displayName));     });     print(html("</ul>"));     printp(link("/""« Back")); } function need_login() {     if (!rpx_user)     {         printp("Sorry, you need to be logged in to use this function.");         printp(link("/""« Back"));         printp(html("</div>"));         response.stop(true);     } } printp(html("""<div class="content">""")); if (request.isGet) {     patternDispatch(       [/^\/$/, get_main],       [/^\/members$/, get_members],       [/^\/request$/, get_request],       [/^\/listid$/, get_listid],       [/^\/signup$/, get_signup],       [/^\/rpx$/, get_rpx],       [/^\/rpx\/signout$/, get_rpx_signout],       [/^\/rpx\/cleanup$/, cron_rpx_cleanup],       dispatch     ); } if (request.isPost) {     patternDispatch(       [/^\/signup$/, post_signup],       dispatch     ); } printp(html("</div>")); /* appjet:css */ body {     font-size: 12px;     background: #eee; } .rpx_box {     font-size:12px;     float: right;     padding-left: 20px;     z-index:1;     background:transparent url(http://apps.jgate.de/static/openid_small_logo.png) no-repeat scroll 0 50%; } div#logo {     float left;     left: 65px;     top: 18px; } img#logo {     height: 40px;     width: 117px; } div#appjetfooter {     width: 726px;     margin-left: auto;     margin-right: auto; } .message {     background:#DDFFDD url(http://apps.jgate.de/static/accept.png) no-repeat scroll 10px 3px;     border:1px solid #BBFFBB;     margin:0.5em 0 1em;     padding:0.2em 40px;     position:relative; } .error {     background:#FFDDDD url(http://apps.jgate.de/static/face-sad.png) no-repeat scroll 10px 0.4em;     border:1px solid #FFBBBB;     margin:0.5em 0 2em;     padding:0.5em 1em 0.5em 40px;     position:relative; } div.content {     border: 1px solid #aaa;     background: white;     padding: 1em;     width: 700px;     margin-right: auto;     margin-left: auto; }

Go Back to this app | Get plain source

Powered by AppJet on JGate
source
rendered in 0.653s