package edu.harvard.iq.dataverse.privateurl;
import edu.harvard.iq.dataverse.DataverseSession;
import edu.harvard.iq.dataverse.authorization.users.PrivateUrlUser;
import java.io.Serializable;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
/**
* Backing bean for JSF page. Sets session to {@link PrivateUrlUser}.
*/
@ViewScoped
@Named("PrivateUrlPage")
public class PrivateUrlPage implements Serializable {
private static final Logger logger = Logger.getLogger(PrivateUrlPage.class.getCanonicalName());
@EJB
PrivateUrlServiceBean privateUrlService;
@Inject
DataverseSession session;
/**
* The unique string used to look up a PrivateUrlUser and the associated
* draft dataset version to redirect the user to.
*/
String token;
public String init() {
try {
PrivateUrlRedirectData privateUrlRedirectData = privateUrlService.getPrivateUrlRedirectDataFromToken(token);
String draftDatasetPageToBeRedirectedTo = privateUrlRedirectData.getDraftDatasetPageToBeRedirectedTo() + "&faces-redirect=true";
PrivateUrlUser privateUrlUser = privateUrlRedirectData.getPrivateUrlUser();
session.setUser(privateUrlUser);
logger.info("Redirecting PrivateUrlUser '" + privateUrlUser.getIdentifier() + "' to " + draftDatasetPageToBeRedirectedTo);
return draftDatasetPageToBeRedirectedTo;
} catch (Exception ex) {
logger.info("Exception processing Private URL token '" + token + "':" + ex);
return "/404.xhtml";
}
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}