diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2013-09-03 07:02:59 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2013-09-03 07:03:26 -0700 |
commit | eb881fdc9b62d1b9d1f5c61f1f4077065db7e933 (patch) | |
tree | 85dda0e94824177ed5aed88d511b95071fe85d87 /src | |
parent | 84d008be8a35d3a19607de669042ddb5c6540f0c (diff) |
New account page improvements and renumbered questions.
Diffstat (limited to 'src')
-rw-r--r-- | src/com/p4square/f1oauth/F1OAuthHelper.java | 19 | ||||
-rw-r--r-- | src/com/p4square/grow/frontend/NewAccountResource.java | 20 | ||||
-rw-r--r-- | src/grow.properties | 2 | ||||
-rw-r--r-- | src/templates/pages/newaccount.html.ftl | 15 |
4 files changed, 38 insertions, 18 deletions
diff --git a/src/com/p4square/f1oauth/F1OAuthHelper.java b/src/com/p4square/f1oauth/F1OAuthHelper.java index d75460f..b5241c4 100644 --- a/src/com/p4square/f1oauth/F1OAuthHelper.java +++ b/src/com/p4square/f1oauth/F1OAuthHelper.java @@ -13,7 +13,9 @@ import org.restlet.Response; import org.restlet.Request; import org.restlet.data.ChallengeResponse; import org.restlet.data.ChallengeScheme; +import org.restlet.data.MediaType; import org.restlet.data.Method; +import org.restlet.data.Status; import org.restlet.engine.util.Base64; import org.restlet.representation.StringRepresentation; @@ -108,21 +110,28 @@ public class F1OAuthHelper extends OAuthHelper { return processAccessTokenRequest(request); } - public void createAccount(String firstname, String lastname, String email, String redirect) + public boolean createAccount(String firstname, String lastname, String email, String redirect) throws OAuthException { String req = String.format("{\n\"account\":{\n\"firstName\":\"%s\",\n" + "\"lastName\":\"%s\",\n\"email\":\"%s\",\n" + "\"urlRedirect\":\"%s\"\n}\n}", firstname, lastname, email, redirect); - Request request = new Request(Method.POST, mBaseUrl + "/Accounts"); + Request request = new Request(Method.POST, mBaseUrl + "Accounts"); request.setChallengeResponse(new ChallengeResponse(ChallengeScheme.HTTP_OAUTH)); - request.setEntity(new StringRepresentation(req)); + request.setEntity(new StringRepresentation(req, MediaType.APPLICATION_JSON)); Response response = getResponse(request); - if (!response.getStatus().isSuccess()) { - throw new OAuthException(response.getStatus()); + Status status = response.getStatus(); + if (Status.SUCCESS_NO_CONTENT.equals(status)) { + return true; + + } else if (Status.CLIENT_ERROR_CONFLICT.equals(status)) { + return false; + + } else { + throw new OAuthException(status); } } } diff --git a/src/com/p4square/grow/frontend/NewAccountResource.java b/src/com/p4square/grow/frontend/NewAccountResource.java index b72680a..9155a00 100644 --- a/src/com/p4square/grow/frontend/NewAccountResource.java +++ b/src/com/p4square/grow/frontend/NewAccountResource.java @@ -46,10 +46,12 @@ public class NewAccountResource extends FreeMarkerPageResource { mGrowFrontend = (GrowFrontend) getApplication(); mHelper = mGrowFrontend.getHelper(); - mErrorMessage = null; + mErrorMessage = ""; - mLoginPageUrl = ""; - mVerificationPage = ""; + mLoginPageUrl = mGrowFrontend.getConfig().getString("postAccountCreationPage", + getRequest().getRootRef().toString()); + mVerificationPage = mGrowFrontend.getConfig().getString("dynamicRoot", "") + + "/verification.html"; } /** @@ -66,7 +68,9 @@ public class NewAccountResource extends FreeMarkerPageResource { } Map<String, Object> root = getRootObject(); - root.put("errorMessage", mErrorMessage); + if (mErrorMessage.length() > 0) { + root.put("errorMessage", mErrorMessage); + } return new TemplateRepresentation(t, root, MediaType.TEXT_HTML); @@ -100,7 +104,11 @@ public class NewAccountResource extends FreeMarkerPageResource { } try { - mHelper.createAccount(firstname, lastname, email, mLoginPageUrl); + if (!mHelper.createAccount(firstname, lastname, email, mLoginPageUrl)) { + mErrorMessage = "An account with that address already exists."; + return get(); + } + getResponse().redirectSeeOther(mVerificationPage); return new StringRepresentation("Redirecting to " + mVerificationPage); @@ -110,6 +118,6 @@ public class NewAccountResource extends FreeMarkerPageResource { } private boolean isEmpty(String s) { - return s != null && s.trim().length() > 0; + return s == null || s.trim().length() == 0; } } diff --git a/src/grow.properties b/src/grow.properties index 88bee42..6dd282c 100644 --- a/src/grow.properties +++ b/src/grow.properties @@ -12,6 +12,8 @@ dev.dynamicRoot = *.f1BaseUrl = staging.fellowshiponeapi.com *.f1ChurchCode = pfseawa +prod.postAccountCreationPage = http://foursquaregrow.com/login.html + # Backend Settings dev.clusterName = Dev Cluster diff --git a/src/templates/pages/newaccount.html.ftl b/src/templates/pages/newaccount.html.ftl index 780a5c8..edfd196 100644 --- a/src/templates/pages/newaccount.html.ftl +++ b/src/templates/pages/newaccount.html.ftl @@ -2,19 +2,20 @@ <#include "/macros/common-page.ftl"> <@commonpage> - <@noticebox> - <#if errorMessage??> + <#if errorMessage??> + <@noticebox class="visible"> ${errorMessage?html} - <#else> - Welcome! - </#if> - </@noticebox> + </@noticebox> + <#else> + <@noticebox> + </@noticebox> + </#if> <@content> <p> Fill out the form below to create a new Puyallup Foursquare InFellowship account. </p> - <form action="${dynamicRoot}/createaccount" method="post"> + <form action="${dynamicRoot}/newaccount.html" method="post"> <p><label for="firstnameField">First Name:</label> <input id="firstnameField" type="text" name="firstname" /></p> <p><label for="lastnameField">Last Name:</label> <input id="lastnameField" type="text" name="lastname" /></p> <p><label for="emailField">Email:</label> <input id="emailField" type="text" name="email" /></p> |