Skip to content

Commit

Permalink
Merge pull request #5525 from jay-hodgson/SWC-7081
Browse files Browse the repository at this point in the history
SWC-7081: pass the invitation token to One Sage
  • Loading branch information
jay-hodgson authored Sep 20, 2024
2 parents 62597f5 + b01f223 commit 8415a17
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 26 deletions.
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
package org.sagebionetworks.web.client.place.users;

import com.google.gwt.place.shared.Place;
import com.google.gwt.place.shared.PlaceTokenizer;
import com.google.gwt.place.shared.Prefix;
import org.sagebionetworks.web.client.place.ParameterizedPlace;

public class RegisterAccount extends Place {
public class RegisterAccount extends ParameterizedPlace {

private String token;
public static final String EMAIL_QUERY_PARAM = "email";
public static final String MEMBERSHIP_INVTN_QUERY_PARAM =
"membershipInvtnSignedToken";

public RegisterAccount(String token) {
this.token = token;
}

public String toToken() {
return token;
super(token);
}

@Prefix("RegisterAccount")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.sagebionetworks.web.client.jsinterop.ToastMessageOptions;
import org.sagebionetworks.web.client.place.EmailInvitation;
import org.sagebionetworks.web.client.place.LoginPlace;
import org.sagebionetworks.web.client.place.ParameterizedToken;
import org.sagebionetworks.web.client.place.Profile;
import org.sagebionetworks.web.client.place.Synapse.ProfileArea;
import org.sagebionetworks.web.client.place.users.RegisterAccount;
Expand Down Expand Up @@ -285,6 +286,12 @@ public void onLoginClick() {

@Override
public void onRegisterClick() {
placeChanger.goTo(new RegisterAccount(email));
RegisterAccount place = new RegisterAccount("");
place.putParam(
RegisterAccount.MEMBERSHIP_INVTN_QUERY_PARAM,
encodedMISignedToken
);
place.putParam(RegisterAccount.EMAIL_QUERY_PARAM, email);
placeChanger.goTo(place);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,21 @@ public void start(AcceptsOneWidget panel, EventBus eventBus) {}

@Override
public void setPlace(RegisterAccount place) {
String token = place.toToken();
if (token != null && token.contains("@")) {
// is likely an email address
Window.Location.replace(
WebConstants.ONESAGE_PRODUCTION_URL +
"/register1?email=" +
token +
"&" +
WebConstants.ONESAGE_SYNAPSE_APPID_QUERY_PARAM
);
} else {
Window.Location.replace(
WebConstants.ONESAGE_PRODUCTION_URL +
"/register1?" +
WebConstants.ONESAGE_SYNAPSE_APPID_QUERY_PARAM
);
String emailInvitationToken = place.getParam(
RegisterAccount.MEMBERSHIP_INVTN_QUERY_PARAM
);
String email = place.getParam(RegisterAccount.EMAIL_QUERY_PARAM);
StringBuilder targetUrl = new StringBuilder();
targetUrl.append(WebConstants.ONESAGE_PRODUCTION_URL);
targetUrl.append("/register1?");
targetUrl.append(WebConstants.ONESAGE_SYNAPSE_APPID_QUERY_PARAM);

if (emailInvitationToken != null) {
targetUrl.append("&signedToken=" + emailInvitationToken);
}
if (email != null) {
targetUrl.append("&email=" + email);
}
Window.Location.replace(targetUrl.toString());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,14 @@ public void testNotLoggedIn() {
RegisterAccount.class
);
verify(mockPlaceChanger).goTo(captor.capture());
assertEquals("[email protected]", captor.getValue().toToken());
assertEquals(
"[email protected]",
captor.getValue().getParam(RegisterAccount.EMAIL_QUERY_PARAM)
);
assertEquals(
encodedMISignedToken,
captor.getValue().getParam(RegisterAccount.MEMBERSHIP_INVTN_QUERY_PARAM)
);
}

@Test
Expand Down

0 comments on commit 8415a17

Please sign in to comment.