Skip to content

Commit a8dd4f4

Browse files
leanneeliatragithub-actions[bot]
authored andcommitted
Switch to new tenant after loading a copied long URL (#1450)
* Replace legacy template with index template (#1359) Signed-off-by: Chang Liu <lc12251109@gmail.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * added loginEndPointWithPath (#1358) * added loginEndPointWithPath Signed-off-by: Mattijs Vanhaverbeke <mattijs-v@live.be> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Add release notes for 1.3.9 (#1379) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * No blank backend role before adding a new one in Create User page (#1384) * Add last backend role empty check Signed-off-by: nursaadat <SNursultan@dar.kz> Signed-off-by: Saadat Nursultan <nursultan.saadat@gmail.com> * Add backend role empty check Signed-off-by: nursaadat <SNursultan@dar.kz> Signed-off-by: Saadat Nursultan <nursultan.saadat@gmail.com> * Add strict comparison Signed-off-by: nursaadat <SNursultan@dar.kz> Signed-off-by: Saadat Nursultan <nursultan.saadat@gmail.com> * Fix lint errors Signed-off-by: nursaadat <SNursultan@dar.kz> Signed-off-by: Saadat Nursultan <nursultan.saadat@gmail.com> * Add tests for backend role panel Signed-off-by: Saadat Nursultan <nursultan.saadat@gmail.com> * Fix lint errors Signed-off-by: Saadat Nursultan <nursultan.saadat@gmail.com> --------- Signed-off-by: nursaadat <SNursultan@dar.kz> Signed-off-by: Saadat Nursultan <nursultan.saadat@gmail.com> Co-authored-by: nursaadat <SNursultan@dar.kz> Co-authored-by: Saadat Nursultan <nursultan.saadat@gmail.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Fix script for Windows (#1393) * Fix script for Windows Signed-off-by: nurbqq <nurbakhyt.sembayev@gmail.com> Signed-off-by: nurbqq <106753054+nurbq@users.noreply.github.com> Co-authored-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adding new actions for ppl and datasource apis (#1395) * Adding new actions for ppl and datasource apis Signed-off-by: vamsi-amazon <reddyvam@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Fix "Get started" image is not adaptive to the browser window size. (#1396) * Fixed get-started page image not adapting to the browser window size Signed-off-by: Sirazh Gabdullin <sirazh.gabdullin@nu.edu.kz> * Update fix by applying suggested changes Signed-off-by: Sirazh Gabdullin <sirazh.gabdullin@nu.edu.kz> * Update unit tests snapshot Signed-off-by: Sirazh Gabdullin <sirazh.gabdullin@nu.edu.kz> --------- Signed-off-by: Sirazh Gabdullin <sirazh.gabdullin@nu.edu.kz> Co-authored-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Split up a value into multiple cookie payloads (#1352) * PoC for splitting up a value into multiple cookie payloads Signed-off-by: Jochen Kressin <jochen.kressin-gh@eliatra.com> * Cookie splitting for OpenId and SAML Signed-off-by: Jochen Kressin <jochen.kressin-gh@eliatra.com> * Changes after review comments Signed-off-by: Jochen Kressin <jochen.kressin-gh@eliatra.com> * WIP: First unit tests Signed-off-by: Jochen Kressin <jochen.kressin-gh@eliatra.com> * More unit tests Signed-off-by: Jochen Kressin <jochen.kressin-gh@eliatra.com> * Fix for multi auth, request argument was missing Signed-off-by: Jochen Kressin <jochen.kressin-gh@eliatra.com> * Fixed linting errors Signed-off-by: Jochen Kressin <jochen.kressin-gh@eliatra.com> * Added one additional cookie for the SAML integration tests Signed-off-by: Jochen Kressin <jochen.kressin-gh@eliatra.com> --------- Signed-off-by: Jochen Kressin <jochen.kressin-gh@eliatra.com> Co-authored-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Dynamic tenancy configurations (#1394) * Dynamic multitenancy feature. Signed-off-by: Abhi Kalra <abhivka@amazon.com> * Dynamic multitenancy feature -PR feedback Signed-off-by: Abhi Kalra <abhivka@amazon.com> --------- Signed-off-by: Abhi Kalra <abhivka@amazon.com> Co-authored-by: Abhi Kalra <abhivka@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Add release notes for 2.7.0 (#1407) * Add release notes for 2.7.0 Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removes tiny.amazon.com links (#1420) Signed-off-by: Darshit Chanpura <dchanp@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Fixing dynamic tenancy changes for issues 1412 (#1419) * Fixing dynamic tenancy changes for opensearchdasbhoard.yaml Signed-off-by: Abhi Kalra <abhivka@amazon.com> Co-authored-by: Abhi Kalra <abhivka@amazon.com> Co-authored-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Change the testuser's password in some integration test cases into a stronger password (#1428) * Change the testuser's password into a stronger password Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Increment version to 3.0.0.0 (#1414) Signed-off-by: opensearch-ci-bot <opensearch-infra@amazon.com> Co-authored-by: opensearch-ci-bot <opensearch-infra@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adds the newly created admin api permissions to the static dropdown list (#1426) * Adds the newly created admin api permissions to the static dropdown of permissions displayed when creating/modifying a role --------- Signed-off-by: Darshit Chanpura <dchanp@amazon.com> Co-authored-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Update account-nav-button.tsx Fix added to set the window.location to the pathname, rather than just reload & clear lastURL as it would be from the previous tenant. Signed-off-by: Leanne Lacey-Byrne <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Update account-nav-button.tsx Adding comments to explain changes Signed-off-by: Leanne Lacey-Byrne <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * add new cluster permissions constants for lron (#1444) Signed-off-by: zhichao-aws <zhichaog@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * removing whitespace due to linting fix Signed-off-by: Leanne Lacey-Byrne <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adding tests for account-nav-button wip Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * put commented code to original state Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Skip flaky SAML test as it awaits a fix (#1453) Signed-off-by: Craig Perkins <craig5008@gmail.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Use version from package.json for integration tests (#1463) * Use version from package.json for integration tests Signed-off-by: Craig Perkins <cwperx@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adds 2.8 release notes (#1464) Signed-off-by: Darshit Chanpura <dchanp@amazon.com> Co-authored-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adding tests to jest test for tenant switch. Putting test in correct folder and renaming function. Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * handle switch calling correct function Signed-off-by: Leanne Lacey-Byrne <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * checking for session storage Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * adding window to make sessionStorage more explicit Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Moved the test into account-nav-button.test.tsx Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing additional files. Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Declared session storage as a constant Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Update account-nav-button.tsx Fix added to set the window.location to the pathname, rather than just reload & clear lastURL as it would be from the previous tenant. Signed-off-by: Leanne Lacey-Byrne <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Update account-nav-button.tsx Adding comments to explain changes Signed-off-by: Leanne Lacey-Byrne <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * removing whitespace due to linting fix Signed-off-by: Leanne Lacey-Byrne <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adding tests for account-nav-button wip Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * put commented code to original state Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adding tests to jest test for tenant switch. Putting test in correct folder and renaming function. Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * handle switch calling correct function Signed-off-by: Leanne Lacey-Byrne <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing additional files. Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Fix unwanted changes Signed-off-by: Darshit Chanpura <dchanp@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Update account-nav-button.tsx Fix added to set the window.location to the pathname, rather than just reload & clear lastURL as it would be from the previous tenant. Signed-off-by: Leanne Lacey-Byrne <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adding tests for account-nav-button wip Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adding tests to jest test for tenant switch. Putting test in correct folder and renaming function. Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * checking for session storage Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Declared session storage as a constant Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adding tests for account-nav-button wip Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Adding tests to jest test for tenant switch. Putting test in correct folder and renaming function. Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Moved the test into account-nav-button.test.tsx Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Dynamic tenancy configurations (#1394) * Dynamic multitenancy feature. Signed-off-by: Abhi Kalra <abhivka@amazon.com> * Dynamic multitenancy feature -PR feedback Signed-off-by: Abhi Kalra <abhivka@amazon.com> --------- Signed-off-by: Abhi Kalra <abhivka@amazon.com> Co-authored-by: Abhi Kalra <abhivka@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Fixing dynamic tenancy changes for issues 1412 (#1419) * Fixing dynamic tenancy changes for opensearchdasbhoard.yaml Signed-off-by: Abhi Kalra <abhivka@amazon.com> Co-authored-by: Abhi Kalra <abhivka@amazon.com> Co-authored-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Use version from package.json for integration tests (#1463) * Use version from package.json for integration tests Signed-off-by: Craig Perkins <cwperx@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing unneded file Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> --------- Signed-off-by: Chang Liu <lc12251109@gmail.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: nursaadat <SNursultan@dar.kz> Signed-off-by: Saadat Nursultan <nursultan.saadat@gmail.com> Signed-off-by: nurbqq <nurbakhyt.sembayev@gmail.com> Signed-off-by: nurbqq <106753054+nurbq@users.noreply.github.com> Signed-off-by: vamsi-amazon <reddyvam@amazon.com> Signed-off-by: Sirazh Gabdullin <sirazh.gabdullin@nu.edu.kz> Signed-off-by: Jochen Kressin <jochen.kressin-gh@eliatra.com> Signed-off-by: Abhi Kalra <abhivka@amazon.com> Signed-off-by: Darshit Chanpura <dchanp@amazon.com> Signed-off-by: opensearch-ci-bot <opensearch-infra@amazon.com> Signed-off-by: Leanne Lacey-Byrne <leanne.laceybyrne@eliatra.com> Signed-off-by: zhichao-aws <zhichaog@amazon.com> Signed-off-by: Craig Perkins <craig5008@gmail.com> Signed-off-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Signed-off-by: Craig Perkins <cwperx@amazon.com> Co-authored-by: Chang Liu <lc12251109@gmail.com> Co-authored-by: mattieserver <3049868+mattieserver@users.noreply.github.com> Co-authored-by: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Co-authored-by: Saadat Nursultan <39532643+nurSaadat@users.noreply.github.com> Co-authored-by: nursaadat <SNursultan@dar.kz> Co-authored-by: Saadat Nursultan <nursultan.saadat@gmail.com> Co-authored-by: Nurbakhyt Sembayev <106753054+nurbq@users.noreply.github.com> Co-authored-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Co-authored-by: Vamsi Manohar <reddyvam@amazon.com> Co-authored-by: Sirazh Gabdullin <sirazh.gabdullin@nu.edu.kz> Co-authored-by: Jochen Kressin <126353411+jochen-kressin@users.noreply.github.com> Co-authored-by: Abhi Kalra <99718513+abhivka7@users.noreply.github.com> Co-authored-by: Abhi Kalra <abhivka@amazon.com> Co-authored-by: Darshit Chanpura <35282393+DarshitChanpura@users.noreply.github.com> Co-authored-by: opensearch-trigger-bot[bot] <98922864+opensearch-trigger-bot[bot]@users.noreply.github.com> Co-authored-by: opensearch-ci-bot <opensearch-infra@amazon.com> Co-authored-by: zhichao-aws <zhichaog@amazon.com> Co-authored-by: Craig Perkins <cwperx@amazon.com> Co-authored-by: Darshit Chanpura <dchanp@amazon.com> (cherry picked from commit 7f4e0f2)
1 parent 7c94046 commit a8dd4f4

File tree

3 files changed

+153
-2
lines changed

3 files changed

+153
-2
lines changed

public/apps/account/account-nav-button.tsx

+22-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export function AccountNavButton(props: {
6262
}}
6363
handleSwitchAndClose={() => {
6464
setModal(null);
65-
window.location.reload();
65+
reloadAfterTenantSwitch();
6666
}}
6767
tenant={props.tenant!}
6868
/>
@@ -186,3 +186,24 @@ export function AccountNavButton(props: {
186186
</EuiHeaderSectionItemButton>
187187
);
188188
}
189+
190+
export function reloadAfterTenantSwitch(): void {
191+
// the below portion is to clear URLs starting with 'lastUrl'
192+
// when switching tenants, the last URLs will be from the old tenancy therefore we need to remove these from sessionStorage.
193+
const lastUrls = [];
194+
const { sessionStorage } = window;
195+
196+
for (let i = 0; i < sessionStorage.length; i++) {
197+
const key = sessionStorage.key(i);
198+
if (key?.startsWith('lastUrl')) {
199+
lastUrls.push(key);
200+
}
201+
}
202+
for (let i = 0; i < lastUrls.length; i++) {
203+
sessionStorage.removeItem(lastUrls[i]);
204+
}
205+
206+
// rather than just reload when we switch tenants, we set the URL to the pathname. i.e. the portion like: '/app/dashboards'
207+
// therefore, the copied URL will now allow tenancy changes.
208+
window.location.href = window.location.pathname;
209+
}

public/apps/account/test/account-nav-button.test.tsx

+58-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import { shallow } from 'enzyme';
1717
import React from 'react';
18-
import { AccountNavButton } from '../account-nav-button';
18+
import { AccountNavButton, reloadAfterTenantSwitch } from '../account-nav-button';
1919
import { getShouldShowTenantPopup, setShouldShowTenantPopup } from '../../../utils/storage-utils';
2020
import { getDashboardsInfo } from '../../../utils/dashboards-info-utils';
2121

@@ -174,3 +174,60 @@ describe('Account navigation button, multitenancy disabled', () => {
174174
expect(setState).toBeCalledTimes(0);
175175
});
176176
});
177+
178+
describe('Reload window after tenant switch', () => {
179+
const originalLocation = window.location;
180+
const mockSetWindowHref = jest.fn();
181+
let pathname: string = '';
182+
beforeAll(() => {
183+
pathname = '/app/myapp';
184+
Object.defineProperty(window, 'location', {
185+
value: {
186+
get pathname() {
187+
return pathname;
188+
},
189+
get href() {
190+
return '/app/dashboards?security_tenant=admin_tenant';
191+
},
192+
set href(value: string) {
193+
mockSetWindowHref(value);
194+
},
195+
},
196+
});
197+
});
198+
199+
afterAll(() => {
200+
window.location = originalLocation;
201+
});
202+
203+
it('should remove the tenant query parameter before reloading', () => {
204+
pathname = '/app/pathname-only';
205+
reloadAfterTenantSwitch();
206+
expect(mockSetWindowHref).toHaveBeenCalledWith(pathname);
207+
});
208+
});
209+
210+
describe('Clear lastUrls after tenant switch', () => {
211+
afterAll(() => {
212+
jest.clearAllMocks();
213+
});
214+
215+
it('should clear out keys with a lastUrl prefix', () => {
216+
window.sessionStorage.setItem('lastUrl:dashboard', '/dashboard1');
217+
window.sessionStorage.setItem('lastUrl:otherApp', '/otherApp');
218+
window.sessionStorage.setItem('somethingElse:here', '/random');
219+
const mockRemoveItem = jest.spyOn(Object.getPrototypeOf(window.sessionStorage), 'removeItem');
220+
reloadAfterTenantSwitch();
221+
expect(mockRemoveItem).toHaveBeenCalledWith('lastUrl:dashboard');
222+
expect(mockRemoveItem).toHaveBeenCalledWith('lastUrl:otherApp');
223+
expect(mockRemoveItem).toHaveBeenCalledTimes(2);
224+
});
225+
226+
it('should not clear out keys without a lastUrl prefix', () => {
227+
window.sessionStorage.setItem('somethingElse:here', '/random');
228+
const mockRemoveItem = jest.spyOn(Object.getPrototypeOf(window.sessionStorage), 'removeItem');
229+
230+
reloadAfterTenantSwitch();
231+
expect(mockRemoveItem).toHaveBeenCalledTimes(0);
232+
});
233+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
/*
2+
* Copyright OpenSearch Contributors
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
import { reloadAfterTenantSwitch } from '../account-nav-button';
17+
18+
describe('Reload window after tenant switch', () => {
19+
const originalLocation = window.location;
20+
const mockSetWindowHref = jest.fn();
21+
let pathname: string = '';
22+
beforeAll(() => {
23+
pathname = '/app/myapp';
24+
Object.defineProperty(window, 'location', {
25+
value: {
26+
get pathname() {
27+
return pathname;
28+
},
29+
get href() {
30+
return '/app/dashboards?security_tenant=admin_tenant';
31+
},
32+
set href(value: string) {
33+
mockSetWindowHref(value);
34+
},
35+
},
36+
});
37+
});
38+
39+
afterAll(() => {
40+
window.location = originalLocation;
41+
});
42+
43+
it('should remove the tenant query parameter before reloading', () => {
44+
pathname = '/app/pathname-only';
45+
reloadAfterTenantSwitch();
46+
expect(mockSetWindowHref).toHaveBeenCalledWith(pathname);
47+
});
48+
});
49+
50+
describe('Clear lastUrls after tenant switch', () => {
51+
afterAll(() => {
52+
jest.clearAllMocks();
53+
});
54+
55+
it('should clear out keys with a lastUrl prefix', () => {
56+
window.sessionStorage.setItem('lastUrl:dashboard', '/dashboard1');
57+
window.sessionStorage.setItem('lastUrl:otherApp', '/otherApp');
58+
window.sessionStorage.setItem('somethingElse:here', '/random');
59+
const mockRemoveItem = jest.spyOn(Object.getPrototypeOf(window.sessionStorage), 'removeItem');
60+
reloadAfterTenantSwitch();
61+
expect(mockRemoveItem).toHaveBeenCalledWith('lastUrl:dashboard');
62+
expect(mockRemoveItem).toHaveBeenCalledWith('lastUrl:otherApp');
63+
expect(mockRemoveItem).toHaveBeenCalledTimes(2);
64+
});
65+
66+
it('should not clear out keys without a lastUrl prefix', () => {
67+
window.sessionStorage.setItem('somethingElse:here', '/random');
68+
const mockRemoveItem = jest.spyOn(Object.getPrototypeOf(window.sessionStorage), 'removeItem');
69+
70+
reloadAfterTenantSwitch();
71+
expect(mockRemoveItem).toHaveBeenCalledTimes(0);
72+
});
73+
});

0 commit comments

Comments
 (0)