fix(fe): refactor fe to support visitor accessing

This commit is contained in:
hexxa 2021-09-24 22:12:48 +08:00 committed by Hexxa
parent 2ccdf0e287
commit 9501bed740
3 changed files with 38 additions and 65 deletions

View file

@ -2,7 +2,7 @@ import * as React from "react";
import { Set, Map } from "immutable"; import { Set, Map } from "immutable";
import { updater } from "./state_updater"; import { updater } from "./state_updater";
import { roleAdmin, roleVisitor } from "../client"; import { roleAdmin, roleUser, roleVisitor } from "../client";
import { ICoreState, MsgProps } from "./core_state"; import { ICoreState, MsgProps } from "./core_state";
import { PaneSettings } from "./pane_settings"; import { PaneSettings } from "./pane_settings";
import { AdminPane, AdminProps } from "./pane_admin"; import { AdminPane, AdminProps } from "./pane_admin";
@ -35,40 +35,43 @@ export class Panes extends React.Component<Props, State, {}> {
render() { render() {
let displaying = this.props.panes.displaying; let displaying = this.props.panes.displaying;
// if (!this.props.login.authed) {
// TODO: use constant instead
// TODO: control this with props
// displaying = "login";
// }
let panesMap: Map<string, JSX.Element> = Map({}); let panesMap: Map<string, JSX.Element> = Map({});
if (this.props.login.userRole !== roleVisitor) { const settingsPane = (
panesMap = panesMap.set( <PaneSettings
"settings", login={this.props.login}
<PaneSettings msg={this.props.msg}
login={this.props.login} update={this.props.update}
msg={this.props.msg} />
update={this.props.update} );
/> const loginPane = (
); <AuthPane
panesMap = panesMap.set( login={this.props.login}
"login", update={this.props.update}
<AuthPane msg={this.props.msg}
login={this.props.login} />
update={this.props.update} );
msg={this.props.msg} const adminPane = (
/> <AdminPane
); admin={this.props.admin}
} msg={this.props.msg}
if (this.props.login.userRole === roleAdmin) { update={this.props.update}
panesMap = panesMap.set( />
"admin", );
<AdminPane
admin={this.props.admin} switch(this.props.login.userRole) {
msg={this.props.msg} case roleAdmin:
update={this.props.update} panesMap = panesMap.set("settings", settingsPane);
/> panesMap = panesMap.set("admin", adminPane);
); panesMap = panesMap.set("login", loginPane);
break;
case roleUser:
panesMap = panesMap.set("settings", settingsPane);
panesMap = panesMap.set("login", loginPane);
break;
default:
panesMap = panesMap.set("login", loginPane);
break;
} }
const panes = panesMap.keySeq().map((paneName: string): JSX.Element => { const panes = panesMap.keySeq().map((paneName: string): JSX.Element => {

View file

@ -65,7 +65,6 @@ export class TopBar extends React.Component<Props, State, {}> {
className="h5" className="h5"
> >
Quickshare Quickshare
{/* <RiGithubFill size="2rem" className="grey4-font margin-r-m" /> */}
</a>, </a>,
<Flexbox <Flexbox
@ -98,35 +97,6 @@ export class TopBar extends React.Component<Props, State, {}> {
{ justifyContent: "flex-end", alignItems: "center" }, { justifyContent: "flex-end", alignItems: "center" },
])} ])}
/> />
{/* <div className="flex-2col-parent">
<a
href="https://github.com/ihexxa/quickshare"
className="flex-13col h5"
>
Quickshare
</a>
<span className="flex-23col text-right">
<span className="grey3-font font-s">
{this.props.login.userName}
</span>
&nbsp;-&nbsp;
<span className="grey0-font font-s margin-r-m">
{this.props.login.userRole}
</span>
<button
onClick={this.showSettings}
className="grey3-bg grey4-font margin-r-m"
>
{this.props.msg.pkg.get("settings")}
</button>
{adminBtn}
<RiGithubFill
size="2rem"
className="grey4-font margin-r-m"
/>
</span>
</div> */}
</div> </div>
); );
} }

View file

@ -25,8 +25,8 @@ const (
defaultSpaceLimit = 1024 * 1024 * 1024 // 1GB defaultSpaceLimit = 1024 * 1024 * 1024 // 1GB
defaultUploadSpeedLimit = 50 * 1024 * 1024 // 50MB defaultUploadSpeedLimit = 50 * 1024 * 1024 // 50MB
defaultDownloadSpeedLimit = 50 * 1024 * 1024 // 50MB defaultDownloadSpeedLimit = 50 * 1024 * 1024 // 50MB
visitorUploadSpeedLimit = 10 * 1024 * 1024 // 50MB visitorUploadSpeedLimit = 10 * 1024 * 1024 // 10MB
visitorDownloadSpeedLimit = 10 * 1024 * 1024 // 50MB visitorDownloadSpeedLimit = 10 * 1024 * 1024 // 10MB
) )
var ( var (