diff --git a/public/static/css/style.css b/public/static/css/style.css index 35a91bd..ea538d6 100644 --- a/public/static/css/style.css +++ b/public/static/css/style.css @@ -665,4 +665,8 @@ div.hr { height: 3rem; border: solid 1px #95a5a6; border-radius: 0.5rem; +} + +.user { + font-weight: bold; } \ No newline at end of file diff --git a/src/client/web/src/client/users_mock.ts b/src/client/web/src/client/users_mock.ts index e7071c6..117bf7c 100644 --- a/src/client/web/src/client/users_mock.ts +++ b/src/client/web/src/client/users_mock.ts @@ -73,7 +73,7 @@ export const resps = { status: 200, statusText: "", data: { - id: 0, + id: "0", name: "mockUser", role: "admin", usedSpace: "256", diff --git a/src/client/web/src/components/__test__/pane_login.test.tsx b/src/client/web/src/components/__test__/pane_login.test.tsx index 01e5ac3..16ac0a3 100644 --- a/src/client/web/src/components/__test__/pane_login.test.tsx +++ b/src/client/web/src/components/__test__/pane_login.test.tsx @@ -32,6 +32,8 @@ describe("Login", () => { // login expect(updater().props.login).toEqual({ + userID: "0", + userName: "mockUser", userRole: "admin", authed: true, captchaID: "", diff --git a/src/client/web/src/components/__test__/state_mgr.test.tsx b/src/client/web/src/components/__test__/state_mgr.test.tsx index b20d085..a902f02 100644 --- a/src/client/web/src/components/__test__/state_mgr.test.tsx +++ b/src/client/web/src/components/__test__/state_mgr.test.tsx @@ -49,6 +49,8 @@ describe("State Manager", () => { // login expect(coreState.login).toEqual({ + userID: "0", + userName: "mockUser", userRole: "admin", authed: true, captchaID: "mockCaptchaID", diff --git a/src/client/web/src/components/pane_login.tsx b/src/client/web/src/components/pane_login.tsx index 0889752..32b62d9 100644 --- a/src/client/web/src/components/pane_login.tsx +++ b/src/client/web/src/components/pane_login.tsx @@ -81,6 +81,7 @@ export class AuthPane extends React.Component { }) .then(() => { this.update(updater().updateBrowser); + this.update(updater().updateLogin); }); }; diff --git a/src/client/web/src/components/state_mgr.tsx b/src/client/web/src/components/state_mgr.tsx index a8f9ec7..606a629 100644 --- a/src/client/web/src/components/state_mgr.tsx +++ b/src/client/web/src/components/state_mgr.tsx @@ -101,6 +101,7 @@ export class StateMgr extends React.Component { } }) .then(() => { + this.update(updater().updateLogin); this.update(updater().updatePanes); this.update(updater().updateAdmin); }); diff --git a/src/client/web/src/components/state_updater.ts b/src/client/web/src/components/state_updater.ts index c52ab53..065f155 100644 --- a/src/client/web/src/components/state_updater.ts +++ b/src/client/web/src/components/state_updater.ts @@ -205,6 +205,8 @@ export class Updater { self = async (): Promise => { const resp = await this.usersClient.self(); if (resp.status === 200) { + this.props.login.userID = resp.data.id; + this.props.login.userName = resp.data.name; this.props.login.userRole = resp.data.role; return true; } diff --git a/src/client/web/src/components/topbar.tsx b/src/client/web/src/components/topbar.tsx index b1ecf5c..b465599 100644 --- a/src/client/web/src/components/topbar.tsx +++ b/src/client/web/src/components/topbar.tsx @@ -26,10 +26,7 @@ export class TopBar extends React.Component { .self() .then(() => { // TODO: remove hardcode role - if ( - this.props.login.authed && - this.props.login.userRole === "admin" - ) { + if (this.props.login.authed && this.props.login.userRole === "admin") { return Promise.all([updater().listRoles(), updater().listUsers()]); } }) @@ -41,6 +38,15 @@ export class TopBar extends React.Component { }; render() { + const adminBtn = + this.props.login.userRole === "admin" ? ( + + ) : null; return (
{ Quickshare + {this.props.login.userName} - + {adminBtn}