From 2ae0266a02cebd8aa69935659b0569122091b659 Mon Sep 17 00:00:00 2001 From: vkovtun <viktor.kovtun@id.ethz.ch> Date: Mon, 7 Aug 2023 10:31:44 +0200 Subject: [PATCH] SSDM-13579: Reusing session token instead of doing login. --- .../components/database/DatabaseComponent.jsx | 18 ++++++++++-------- .../database/data-browser/DataBrowser.jsx | 13 ++++++------- .../data-browser/DataBrowserController.js | 4 ++++ 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/ui-admin/src/js/components/database/DatabaseComponent.jsx b/ui-admin/src/js/components/database/DatabaseComponent.jsx index 4acea05e169..1e35cad3df8 100644 --- a/ui-admin/src/js/components/database/DatabaseComponent.jsx +++ b/ui-admin/src/js/components/database/DatabaseComponent.jsx @@ -77,14 +77,16 @@ class DatabaseComponent extends React.PureComponent { logger.log(logger.DEBUG, 'DatabaseComponent.render') const { object } = this.props - return ( - this.state.showDataBrowser - ? - <DataBrowser id={object.id} viewType='list'/> - : - <Container> - <pre>{JSON.stringify(this.state.json || {}, null, 2)}</pre> - </Container> + return this.state.showDataBrowser ? ( + <DataBrowser + id={object.id} + viewType='list' + sessionTokenProvider={() => AppController.getInstance().getSessionToken()} + /> + ) : ( + <Container> + <pre>{JSON.stringify(this.state.json || {}, null, 2)}</pre> + </Container> ) } } diff --git a/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx b/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx index ca14a4cbc1f..bf055b9be57 100644 --- a/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx +++ b/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx @@ -91,26 +91,25 @@ class DataBrowser extends React.Component { super(props, context) autoBind(this) - this.controller = this.props.controller || new DataBrowserController() + const { sessionTokenProvider, controller } = this.props + + this.controller = controller || new DataBrowserController() this.controller.attach(this) this.datastoreServer = new DataStoreServer( 'http://localhost:8085', HTTP_SERVER_URI ) + this.controller.useSessionToken(sessionTokenProvider) + this.state = { - viewType: null, + viewType: props.viewType, files: [], selectedFile: null, multiselectedFiles: new Set([]), showInfo: false, path: '/' } - - // Login for all subsequent requests - this.controller.login().then(() => { - this.setState({ viewType: props.viewType }) - }) } handleViewTypeChange(viewType) { this.setState({ viewType }) diff --git a/ui-admin/src/js/components/database/data-browser/DataBrowserController.js b/ui-admin/src/js/components/database/data-browser/DataBrowserController.js index 79a005583b8..46de92362d4 100644 --- a/ui-admin/src/js/components/database/data-browser/DataBrowserController.js +++ b/ui-admin/src/js/components/database/data-browser/DataBrowserController.js @@ -41,6 +41,10 @@ export default class DataBrowserController extends ComponentController { }) } + useSessionToken(sessionTokenProvider) { + this.component.datastoreServer.useSession(sessionTokenProvider()) + } + async listFiles() { return new Promise((resolve, reject) => { this.component.datastoreServer.list(this.owner, this.path, true, (data) => { -- GitLab