diff options
Diffstat (limited to 'src/com/p4square/grow/frontend/NewAccountResource.java')
-rw-r--r-- | src/com/p4square/grow/frontend/NewAccountResource.java | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/src/com/p4square/grow/frontend/NewAccountResource.java b/src/com/p4square/grow/frontend/NewAccountResource.java deleted file mode 100644 index 5c13017..0000000 --- a/src/com/p4square/grow/frontend/NewAccountResource.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.frontend; - -import java.util.Map; - -import com.p4square.f1oauth.FellowshipOneIntegrationDriver; -import freemarker.template.Template; - -import org.restlet.data.Form; -import org.restlet.data.MediaType; -import org.restlet.data.Status; -import org.restlet.representation.Representation; -import org.restlet.representation.StringRepresentation; -import org.restlet.ext.freemarker.TemplateRepresentation; - -import org.apache.log4j.Logger; - -import com.p4square.f1oauth.F1Access; -import com.p4square.restlet.oauth.OAuthException; - -import com.p4square.fmfacade.FreeMarkerPageResource; - -/** - * This resource creates a new InFellowship account. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class NewAccountResource extends FreeMarkerPageResource { - private static Logger LOG = Logger.getLogger(NewAccountResource.class); - - private GrowFrontend mGrowFrontend; - private F1Access mHelper; - - private String mErrorMessage; - - private String mLoginPageUrl; - private String mVerificationPage; - - @Override - public void doInit() { - super.doInit(); - - mGrowFrontend = (GrowFrontend) getApplication(); - - final IntegrationDriver driver = mGrowFrontend.getThirdPartyIntegrationFactory(); - if (driver instanceof FellowshipOneIntegrationDriver) { - mHelper = ((FellowshipOneIntegrationDriver) driver).getF1Access(); - } else { - LOG.error("NewAccountResource only works with F1!"); - mHelper = null; - } - - mErrorMessage = ""; - - mLoginPageUrl = mGrowFrontend.getConfig().getString("postAccountCreationPage", - getRequest().getRootRef().toString()); - mVerificationPage = mGrowFrontend.getConfig().getString("dynamicRoot", "") - + "/verification.html"; - } - - /** - * Return the login page. - */ - @Override - protected Representation get() { - Template t = mGrowFrontend.getTemplate("pages/newaccount.html.ftl"); - - try { - if (t == null) { - setStatus(Status.CLIENT_ERROR_NOT_FOUND); - return ErrorPage.TEMPLATE_NOT_FOUND; - } - - Map<String, Object> root = getRootObject(); - if (mErrorMessage.length() > 0) { - root.put("errorMessage", mErrorMessage); - } - - return new TemplateRepresentation(t, root, MediaType.TEXT_HTML); - - } catch (Exception e) { - LOG.fatal("Could not render page: " + e.getMessage(), e); - setStatus(Status.SERVER_ERROR_INTERNAL); - return ErrorPage.RENDER_ERROR; - } - } - - @Override - protected Representation post(Representation rep) { - if (mHelper == null) { - mErrorMessage += "F1 support is not enabled! "; - return get(); - } - - Form form = new Form(rep); - - String firstname = form.getFirstValue("firstname"); - String lastname = form.getFirstValue("lastname"); - String email = form.getFirstValue("email"); - - if (isEmpty(firstname)) { - mErrorMessage += "First Name is a required field. "; - } - if (isEmpty(lastname)) { - mErrorMessage += "Last Name is a required field. "; - } - if (isEmpty(email)) { - mErrorMessage += "Email is a required field. "; - } - - if (mErrorMessage.length() > 0) { - return get(); - } - - try { - 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); - - } catch (OAuthException e) { - return new ErrorPage(e.getStatus().getDescription()); - } - } - - private boolean isEmpty(String s) { - return s == null || s.trim().length() == 0; - } -} |