Skip to content

Commit

Permalink
Merge pull request #1 from pdurbin/2170-confirm-email
Browse files Browse the repository at this point in the history
deployable, table works
  • Loading branch information
bsilverstein95 authored Jul 8, 2016
2 parents 2d6ba01 + a0a0c07 commit c263d0e
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
import edu.harvard.iq.dataverse.authorization.users.GuestUser;
import edu.harvard.iq.dataverse.authorization.users.User;
import edu.harvard.iq.dataverse.confirmemail.ConfirmEmailServiceBean;
import edu.harvard.iq.dataverse.engine.command.Command;
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
Expand Down Expand Up @@ -169,6 +170,9 @@ String getWrappedMessageWhenJson() {
@EJB
protected SavedSearchServiceBean savedSearchSvc;

@EJB
protected ConfirmEmailServiceBean confirmEmailSvc;

@PersistenceContext(unitName = "VDCNet-ejbPU")
protected EntityManager em;

Expand Down
9 changes: 9 additions & 0 deletions src/main/java/edu/harvard/iq/dataverse/api/BuiltinUsers.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import edu.harvard.iq.dataverse.authorization.providers.builtin.PasswordEncryption;
import edu.harvard.iq.dataverse.authorization.users.ApiToken;
import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
import edu.harvard.iq.dataverse.confirmemail.ConfirmEmailData;
import edu.harvard.iq.dataverse.util.json.JsonPrinter;
import java.sql.Timestamp;
import java.util.Calendar;
Expand Down Expand Up @@ -134,10 +135,18 @@ private Response internalSave(BuiltinUser user, String password, String key) {
token.setExpireTime(new Timestamp(c.getTimeInMillis()));
authSvc.save(token);

ConfirmEmailData confirmEmailData = confirmEmailSvc.createToken(au);

JsonObjectBuilder resp = Json.createObjectBuilder();
resp.add("user", json(user));
resp.add("authenticatedUser", jsonForAuthUser(au));
resp.add("apiToken", token.getTokenString());
/**
* @todo Remove this once a superuser can retrieve the token via the
* admin API. We don't want users to get the confirm email token
* except via email.
*/
resp.add("confirmEmailToken", confirmEmailData.getToken());

alr.setInfo("builtinUser:" + user.getUserName() + " authenticatedUser:" + au.getIdentifier() );
return okResponse(resp);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,5 +105,14 @@ public Long getId() {
public void setId(Long id) {
this.id = id;
}


/**
* This is only here because it has to be: "The class should have a no-arg,
* public or protected constructor." Please use the constructor that takes
* arguments.
*/
@Deprecated
public ConfirmEmailData() {
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
*/

@ViewScoped
@Named("PasswordResetPage")
@Named("ConfirmEmailPage")
public class ConfirmEmailPage implements java.io.Serializable {

private static final Logger logger = Logger.getLogger(ConfirmEmailPage.class.getCanonicalName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.NonUniqueResultException;
Expand All @@ -19,6 +20,7 @@
*
* @author bsilverstein
*/
@Stateless
public class ConfirmEmailServiceBean {

private static final Logger logger = Logger.getLogger(ConfirmEmailServiceBean.class.getCanonicalName());
Expand Down Expand Up @@ -212,5 +214,11 @@ private boolean deleteToken(String token) {
return false;
}
}

public ConfirmEmailData createToken(AuthenticatedUser au) {
ConfirmEmailData confirmEmailData = new ConfirmEmailData(au);
em.persist(confirmEmailData);
return confirmEmailData;
}

}

0 comments on commit c263d0e

Please sign in to comment.