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 | 235e27865559a72a903be28fd33cfeb8759730b4 (patch) | |
| tree | a13565dc68c52d213bb78baeb648a6917f7ad267 /src | |
| parent | aace86e8d6dfd7d5db7e882d631c5ea91983ccdb (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 4f55043..f6f736f 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 e0b857a..f37a33e 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>  | 
