Skip to content

Commit 6f58162

Browse files
leanneeliatraDarshitChanpura
authored andcommitted
Switch to new tenant after loading a copied long URL (opensearch-project#1450)
* Replace legacy template with index template (opensearch-project#1359) Signed-off-by: Chang Liu <lc12251109@gmail.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * added loginEndPointWithPath (opensearch-project#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 (opensearch-project#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 (opensearch-project#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 (opensearch-project#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 (opensearch-project#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. (opensearch-project#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 (opensearch-project#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 (opensearch-project#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 (opensearch-project#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 (opensearch-project#1420) Signed-off-by: Darshit Chanpura <dchanp@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Fixing dynamic tenancy changes for issues 1412 (opensearch-project#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 (opensearch-project#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 (opensearch-project#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 (opensearch-project#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 (opensearch-project#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 (opensearch-project#1453) Signed-off-by: Craig Perkins <craig5008@gmail.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#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 (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#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 (opensearch-project#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 (opensearch-project#1456) Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: leanneeliatra <leanne.laceybyrne@eliatra.com> * Removing Prerequisite Checks Workflow (opensearch-project#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 (opensearch-project#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 cbe06da commit 6f58162

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
@@ -59,7 +59,7 @@ export function AccountNavButton(props: {
5959
}}
6060
handleSwitchAndClose={() => {
6161
setModal(null);
62-
window.location.reload();
62+
reloadAfterTenantSwitch();
6363
}}
6464
/>
6565
),
@@ -164,3 +164,24 @@ export function AccountNavButton(props: {
164164
</EuiHeaderSectionItemButton>
165165
);
166166
}
167+
168+
export function reloadAfterTenantSwitch(): void {
169+
// the below portion is to clear URLs starting with 'lastUrl'
170+
// when switching tenants, the last URLs will be from the old tenancy therefore we need to remove these from sessionStorage.
171+
const lastUrls = [];
172+
const { sessionStorage } = window;
173+
174+
for (let i = 0; i < sessionStorage.length; i++) {
175+
const key = sessionStorage.key(i);
176+
if (key?.startsWith('lastUrl')) {
177+
lastUrls.push(key);
178+
}
179+
}
180+
for (let i = 0; i < lastUrls.length; i++) {
181+
sessionStorage.removeItem(lastUrls[i]);
182+
}
183+
184+
// rather than just reload when we switch tenants, we set the URL to the pathname. i.e. the portion like: '/app/dashboards'
185+
// therefore, the copied URL will now allow tenancy changes.
186+
window.location.href = window.location.pathname;
187+
}

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

2121
jest.mock('../../../utils/storage-utils', () => ({
@@ -102,3 +102,60 @@ describe('Account navigation button', () => {
102102
expect(setState).toBeCalledTimes(1);
103103
});
104104
});
105+
106+
describe('Reload window after tenant switch', () => {
107+
const originalLocation = window.location;
108+
const mockSetWindowHref = jest.fn();
109+
let pathname: string = '';
110+
beforeAll(() => {
111+
pathname = '/app/myapp';
112+
Object.defineProperty(window, 'location', {
113+
value: {
114+
get pathname() {
115+
return pathname;
116+
},
117+
get href() {
118+
return '/app/dashboards?security_tenant=admin_tenant';
119+
},
120+
set href(value: string) {
121+
mockSetWindowHref(value);
122+
},
123+
},
124+
});
125+
});
126+
127+
afterAll(() => {
128+
window.location = originalLocation;
129+
});
130+
131+
it('should remove the tenant query parameter before reloading', () => {
132+
pathname = '/app/pathname-only';
133+
reloadAfterTenantSwitch();
134+
expect(mockSetWindowHref).toHaveBeenCalledWith(pathname);
135+
});
136+
});
137+
138+
describe('Clear lastUrls after tenant switch', () => {
139+
afterAll(() => {
140+
jest.clearAllMocks();
141+
});
142+
143+
it('should clear out keys with a lastUrl prefix', () => {
144+
window.sessionStorage.setItem('lastUrl:dashboard', '/dashboard1');
145+
window.sessionStorage.setItem('lastUrl:otherApp', '/otherApp');
146+
window.sessionStorage.setItem('somethingElse:here', '/random');
147+
const mockRemoveItem = jest.spyOn(Object.getPrototypeOf(window.sessionStorage), 'removeItem');
148+
reloadAfterTenantSwitch();
149+
expect(mockRemoveItem).toHaveBeenCalledWith('lastUrl:dashboard');
150+
expect(mockRemoveItem).toHaveBeenCalledWith('lastUrl:otherApp');
151+
expect(mockRemoveItem).toHaveBeenCalledTimes(2);
152+
});
153+
154+
it('should not clear out keys without a lastUrl prefix', () => {
155+
window.sessionStorage.setItem('somethingElse:here', '/random');
156+
const mockRemoveItem = jest.spyOn(Object.getPrototypeOf(window.sessionStorage), 'removeItem');
157+
158+
reloadAfterTenantSwitch();
159+
expect(mockRemoveItem).toHaveBeenCalledTimes(0);
160+
});
161+
});
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)