Skip to content

Commit

Permalink
Merge pull request #5556 from Sage-Bionetworks/release-518
Browse files Browse the repository at this point in the history
  • Loading branch information
nickgros authored Oct 22, 2024
2 parents 3eca10a + add6b6c commit aff59df
Show file tree
Hide file tree
Showing 15 changed files with 105 additions and 82 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,8 @@
import org.sagebionetworks.web.client.jsinterop.ReactMouseEvent;
import org.sagebionetworks.web.client.jsinterop.SRC;
import org.sagebionetworks.web.client.jsinterop.ToastMessageOptions;
import org.sagebionetworks.web.client.place.PeopleSearch;
import org.sagebionetworks.web.client.place.Search;
import org.sagebionetworks.web.client.place.Synapse;
import org.sagebionetworks.web.client.place.Team;
import org.sagebionetworks.web.client.place.TeamSearch;
import org.sagebionetworks.web.client.place.Trash;
import org.sagebionetworks.web.client.utils.Callback;
import org.sagebionetworks.web.client.utils.FileHandleUtils;
import org.sagebionetworks.web.client.widget.LoadingSpinner;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,5 +78,4 @@ public interface GWTWrapper {
boolean isValidJSONArray(String json);

JSONValue parseJSONStrict(String json);
String getOneSageURL();
}
32 changes: 0 additions & 32 deletions src/main/java/org/sagebionetworks/web/client/GWTWrapperImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@
import com.google.gwt.user.datepicker.client.CalendarUtil;
import com.google.gwt.xhr.client.XMLHttpRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.sagebionetworks.web.client.utils.Callback;

public class GWTWrapperImpl implements GWTWrapper {
Expand Down Expand Up @@ -243,36 +241,6 @@ public String getFriendlySize(double size, boolean abbreviatedUnits) {
return DisplayUtils.getFriendlySize(size, abbreviatedUnits);
}

private static Map<String, String> hostName2OneSageSite = new HashMap<>();

static {
hostName2OneSageSite.put(
"staging.synapse.org",
"https://staging.accounts.synapse.org/?appId=staging.synapse.org"
);
hostName2OneSageSite.put(
"portal-dev.dev.sagebase.org",
"https://accounts-dev.dev.sagebase.org/?appId=dev.synapse.org"
);
hostName2OneSageSite.put(
"localhost",
"http://localhost:3000/?appId=localhost"
);
hostName2OneSageSite.put(
"127.0.0.1",
"http://127.0.0.1:3000/?appId=localhost"
);
}

@Override
public String getOneSageURL() {
String hostName = Window.Location.getHostName().toLowerCase();
return hostName2OneSageSite.getOrDefault(
hostName,
"https://accounts.synapse.org/?appId=synapse.org"
);
}

@Override
public DateTimeFormat getFormat(String formatPattern) {
return DateTimeFormat.getFormat(formatPattern);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -623,8 +623,8 @@ public void gotoLoginPage() {
gwt.getCurrentURL(),
twoHoursFromNow
);
//go to One Sage to log in
gwt.assignThisWindowWith(gwt.getOneSageURL());
// SWC-6533: Sending all to One Sage for login
gwt.assignThisWindowWith(OneSageUtils.getOneSageURL());
}

@Override
Expand Down
62 changes: 62 additions & 0 deletions src/main/java/org/sagebionetworks/web/client/OneSageUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package org.sagebionetworks.web.client;

import static org.sagebionetworks.web.shared.WebConstants.ONESAGE_ACCOUNT_SETTINGS_PATH;

import com.google.gwt.user.client.Window;
import org.sagebionetworks.web.shared.WebConstants;

public class OneSageUtils {

private static String getHostForOneSage() {
// SWC-6533: We do not want to stack hop for Prod and Staging
switch (Window.Location.getHostName().toLowerCase()) {
case "staging.synapse.org":
return "https://staging.accounts.synapse.org";
case "portal-dev.dev.sagebase.org":
return "https://accounts-dev.dev.sagebase.org";
case "localhost":
case "127.0.0.1":
return "http://" + Window.Location.getHostName() + ":3000";
default:
return "https://accounts.synapse.org";
}
}

public static String getAppIdForOneSage() {
switch (Window.Location.getHostName().toLowerCase()) {
case "staging.synapse.org":
return "staging.synapse.org";
case "portal-dev.dev.sagebase.org":
return "dev.synapse.org";
case "localhost":
case "127.0.0.1":
return "localhost";
default:
return "synapse.org";
}
}

public static String getOneSageURL() {
return getOneSageURL("/");
}

/**
* Based on the current hostname, generate a URL pointing to an instance of OneSage with an appropriate appId search param.
* @param path
* @return a String representation of the OneSage URL
*/
public static String getOneSageURL(String path) {
return (
getHostForOneSage() +
path +
"?" +
WebConstants.ONESAGE_SYNAPSE_APPID_QUERY_PARAM_KEY +
"=" +
getAppIdForOneSage()
);
}

public static String getAccountSettingsURL() {
return getOneSageURL(ONESAGE_ACCOUNT_SETTINGS_PATH);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.sagebionetworks.web.client.jsinterop;

import com.google.gwt.user.client.Window;
import static org.sagebionetworks.web.client.OneSageUtils.getAppIdForOneSage;

import jsinterop.annotations.JsNullable;
import jsinterop.annotations.JsOverlay;
import jsinterop.annotations.JsPackage;
Expand All @@ -25,15 +26,11 @@ public static SynapseContextJsObject create(
boolean utcTime
) {
SynapseContextJsObject context = new SynapseContextJsObject();
// SWC-6533: Sending all to One Sage for login, and we do not want to stack hop for Prod and Staging
boolean isStaging = Window.Location
.getHostName()
.equalsIgnoreCase("staging.synapse.org");
context.accessToken = accessToken;
context.isInExperimentalMode = isInExperimentalMode;
context.utcTime = utcTime;
context.downloadCartPageUrl = "/DownloadCart:0";
context.appId = isStaging ? "staging.synapse.org" : "synapse.org";
context.appId = getAppIdForOneSage();
context.withErrorBoundary = true;
return context;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.inject.Inject;
import org.sagebionetworks.web.client.GlobalApplicationState;
import org.sagebionetworks.web.client.OneSageUtils;
import org.sagebionetworks.web.client.place.PersonalAccessTokenPlace;
import org.sagebionetworks.web.shared.WebConstants;

public class PersonalAccessTokensPresenter
extends AbstractActivity
Expand All @@ -29,9 +29,7 @@ public void setPlace(PersonalAccessTokenPlace place) {}
@Override
public void start(AcceptsOneWidget panel, EventBus eventBus) {
Window.Location.replace(
WebConstants.ONESAGE_PRODUCTION_URL +
"/authenticated/personalaccesstokens?" +
WebConstants.ONESAGE_SYNAPSE_APPID_QUERY_PARAM
OneSageUtils.getOneSageURL("/authenticated/personalaccesstokens")
);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.sagebionetworks.web.client.presenter;

import static com.google.common.util.concurrent.MoreExecutors.directExecutor;
import static org.sagebionetworks.web.shared.WebConstants.ONESAGE_ACCOUNT_SETTINGS_URL;

import com.google.common.util.concurrent.FutureCallback;
import com.google.gwt.activity.shared.AbstractActivity;
Expand All @@ -14,12 +13,28 @@
import com.google.inject.Inject;
import java.util.ArrayList;
import java.util.List;
import org.sagebionetworks.repo.model.*;
import org.sagebionetworks.repo.model.Challenge;
import org.sagebionetworks.repo.model.Entity;
import org.sagebionetworks.repo.model.EntityHeader;
import org.sagebionetworks.repo.model.PaginatedTeamIds;
import org.sagebionetworks.repo.model.Project;
import org.sagebionetworks.repo.model.ProjectHeader;
import org.sagebionetworks.repo.model.ProjectHeaderList;
import org.sagebionetworks.repo.model.ProjectListSortColumn;
import org.sagebionetworks.repo.model.ProjectListType;
import org.sagebionetworks.repo.model.Team;
import org.sagebionetworks.repo.model.UserBundle;
import org.sagebionetworks.repo.model.entity.query.SortDirection;
import org.sagebionetworks.repo.model.principal.AliasType;
import org.sagebionetworks.repo.model.principal.PrincipalAliasRequest;
import org.sagebionetworks.repo.model.principal.PrincipalAliasResponse;
import org.sagebionetworks.web.client.*;
import org.sagebionetworks.web.client.DisplayConstants;
import org.sagebionetworks.web.client.DisplayUtils;
import org.sagebionetworks.web.client.GWTWrapper;
import org.sagebionetworks.web.client.GlobalApplicationState;
import org.sagebionetworks.web.client.OneSageUtils;
import org.sagebionetworks.web.client.PortalGinInjector;
import org.sagebionetworks.web.client.SynapseJavascriptClient;
import org.sagebionetworks.web.client.place.Profile;
import org.sagebionetworks.web.client.place.Synapse;
import org.sagebionetworks.web.client.place.Synapse.ProfileArea;
Expand Down Expand Up @@ -842,7 +857,7 @@ private void showView(Profile place) {
updateProfileView(place.getUserId());
} else {
if (Profile.EDIT_PROFILE_TOKEN.equals(token)) {
Window.Location.replace(ONESAGE_ACCOUNT_SETTINGS_URL);
Window.Location.replace(OneSageUtils.getAccountSettingsURL());
} else {
// if this is a number, then treat it as a a user id
try {
Expand Down Expand Up @@ -941,7 +956,7 @@ private void refreshData(ProfileArea tab) {
refreshTeams();
break;
case SETTINGS:
Window.Location.replace(ONESAGE_ACCOUNT_SETTINGS_URL);
Window.Location.replace(OneSageUtils.getAccountSettingsURL());
break;
case CHALLENGES:
refreshChallenges();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.inject.Inject;
import org.sagebionetworks.web.client.OneSageUtils;
import org.sagebionetworks.web.client.place.TwoFactorAuthPlace;
import org.sagebionetworks.web.shared.WebConstants;

public class TwoFactorAuthPresenter
extends AbstractActivity
Expand All @@ -17,7 +17,7 @@ public TwoFactorAuthPresenter() {}

@Override
public void start(AcceptsOneWidget panel, EventBus eventBus) {
Window.Location.replace(WebConstants.ONESAGE_ACCOUNT_SETTINGS_URL);
Window.Location.replace(OneSageUtils.getAccountSettingsURL());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,16 @@
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.inject.Inject;
import org.sagebionetworks.web.client.OneSageUtils;
import org.sagebionetworks.web.client.place.users.PasswordReset;
import org.sagebionetworks.web.client.presenter.Presenter;
import org.sagebionetworks.web.shared.WebConstants;

public class PasswordResetPresenter
extends AbstractActivity
implements Presenter<PasswordReset> {

private static final String ONE_SAGE_RESET_PASSWORD_URL =
WebConstants.ONESAGE_PRODUCTION_URL +
"/resetPassword?" +
WebConstants.ONESAGE_SYNAPSE_APPID_QUERY_PARAM;
OneSageUtils.getOneSageURL("/resetPassword");

@Inject
public PasswordResetPresenter() {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.inject.Inject;
import org.sagebionetworks.web.client.OneSageUtils;
import org.sagebionetworks.web.client.place.users.RegisterAccount;
import org.sagebionetworks.web.client.presenter.Presenter;
import org.sagebionetworks.web.shared.WebConstants;

public class RegisterAccountPresenter
extends AbstractActivity
Expand All @@ -26,9 +26,7 @@ public void setPlace(RegisterAccount place) {
);
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);
targetUrl.append(OneSageUtils.getOneSageURL("/register1"));

if (emailInvitationToken != null) {
targetUrl.append("&signedToken=" + emailInvitationToken);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.sagebionetworks.web.client.widget;

import static org.sagebionetworks.web.shared.WebConstants.ONESAGE_ACCOUNT_SETTINGS_URL;

import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Window;
Expand All @@ -11,6 +9,7 @@
import org.gwtbootstrap3.client.ui.Button;
import org.gwtbootstrap3.client.ui.Modal;
import org.sagebionetworks.web.client.GlobalApplicationState;
import org.sagebionetworks.web.client.OneSageUtils;
import org.sagebionetworks.web.client.security.AuthenticationController;

public class QuarantinedEmailModal implements IsWidget {
Expand All @@ -30,7 +29,7 @@ public QuarantinedEmailModal(
) {
widget = (Modal) binder.createAndBindUi(this);
accountSettingsLink.addClickHandler(event -> {
Window.open(ONESAGE_ACCOUNT_SETTINGS_URL, "_blank", "");
Window.open(OneSageUtils.getAccountSettingsURL(), "_blank", "");
widget.hide();
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.gwtbootstrap3.client.ui.html.Paragraph;
import org.sagebionetworks.repo.model.UserBundle;
import org.sagebionetworks.web.client.DisplayUtils;
import org.sagebionetworks.web.client.OneSageUtils;
import org.sagebionetworks.web.client.SynapseJSNIUtils;
import org.sagebionetworks.web.client.SynapseJavascriptClient;
import org.sagebionetworks.web.client.context.SynapseReactClientFullContextPropsProvider;
Expand All @@ -32,7 +33,6 @@
import org.sagebionetworks.web.client.jsinterop.UserProfileLinksProps;
import org.sagebionetworks.web.client.jsinterop.mui.Grid;
import org.sagebionetworks.web.client.widget.ReactComponent;
import org.sagebionetworks.web.shared.WebConstants;

public class UserProfileWidgetViewImpl implements UserProfileWidgetView {

Expand Down Expand Up @@ -140,9 +140,12 @@ public UserProfileWidgetViewImpl(
this.jsClient = jsClient;
widget = binder.createAndBindUi(this);
editProfileButton.addClickHandler(event -> {
Window.open(WebConstants.ONESAGE_ACCOUNT_SETTINGS_URL, "_blank", "");
Window.open(OneSageUtils.getAccountSettingsURL(), "_blank", "");
});
linkRenderer.getElement().setAttribute("rel", "noreferrer noopener");
changePasswordLink.setHref(
OneSageUtils.getAccountSettingsURL() + "#ChangePassword"
);
}

@Override
Expand Down
11 changes: 3 additions & 8 deletions src/main/java/org/sagebionetworks/web/shared/WebConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,9 @@ public class WebConstants {

public static final String INVALID_EMAIL_MESSAGE = "Invalid email address";

public static final String ONESAGE_PRODUCTION_URL =
"https://accounts.synapse.org";
public static final String ONESAGE_SYNAPSE_APPID_QUERY_PARAM =
"appId=synapse.org";
public static final String ONESAGE_ACCOUNT_SETTINGS_URL =
ONESAGE_PRODUCTION_URL +
"/authenticated/myaccount?" +
ONESAGE_SYNAPSE_APPID_QUERY_PARAM;
public static final String ONESAGE_SYNAPSE_APPID_QUERY_PARAM_KEY = "appId";
public static final String ONESAGE_ACCOUNT_SETTINGS_PATH =
"/authenticated/myaccount";

public static final String DOCS_BASE_URL = "https://help.synapse.org/";
public static final String DOCS_URL = DOCS_BASE_URL + "docs/";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,4 @@ public boolean isValidJSONArray(String json) {
public JSONValue parseJSONStrict(String json) {
return null;
}

@Override
public String getOneSageURL() {
return null;
}
}

0 comments on commit aff59df

Please sign in to comment.