roles is not an enum
This commit is contained in:
parent
13651df94d
commit
b62b2fcf7b
web/src/app
@ -1,4 +1,4 @@
|
||||
import { Roles } from "@/app/ts/Roles";
|
||||
import { Roles, RolesConstants } from "@/app/ts/Roles";
|
||||
import { SubmissionStatus } from "@/app/ts/Submission";
|
||||
import { Button, ButtonOwnProps } from "@mui/material";
|
||||
import { useState, useEffect } from "react";
|
||||
@ -65,7 +65,7 @@ export default function ReviewButtons(props: ReviewId) {
|
||||
// ResetUploading | MapAdmin | Uploading
|
||||
const { submissionId, submissionStatus } = props;
|
||||
const [user, setUser] = useState<number|null>(null);
|
||||
const [roles, setRoles] = useState<Roles>(Roles.Empty);
|
||||
const [roles, setRoles] = useState<Roles>(RolesConstants.Empty);
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
@ -101,7 +101,7 @@ export default function ReviewButtons(props: ReviewId) {
|
||||
}
|
||||
}
|
||||
|
||||
if (roles&Roles.SubmissionReview) {
|
||||
if (roles&RolesConstants.SubmissionReview) {
|
||||
if (submissionStatus === SubmissionStatus.Submitted) {
|
||||
visibleButtons.push({ name: "Accept", action: "trigger-validate", color: "info", submissionId });
|
||||
visibleButtons.push({ name: "Reject", action: "reject", color: "error", submissionId });
|
||||
@ -117,7 +117,7 @@ export default function ReviewButtons(props: ReviewId) {
|
||||
}
|
||||
}
|
||||
|
||||
if (roles&Roles.SubmissionUpload) {
|
||||
if (roles&RolesConstants.SubmissionUpload) {
|
||||
if (submissionStatus === SubmissionStatus.Validated) {
|
||||
visibleButtons.push({ name: "Upload", action: "trigger-upload", color: "info", submissionId });
|
||||
}
|
||||
|
@ -1,15 +1,25 @@
|
||||
// Submissions roles bitflag
|
||||
enum Roles {
|
||||
SubmissionUpload = 1 << 6,
|
||||
SubmissionReview = 1 << 5,
|
||||
SubmissionRelease = 1 << 4,
|
||||
ScriptWrite = 1 << 3,
|
||||
MapfixUpload = 1 << 2,
|
||||
MapfixReview = 1 << 1,
|
||||
MapDownload = 1 << 0,
|
||||
Empty = 0
|
||||
type Roles = number;
|
||||
|
||||
// Constants
|
||||
const RolesConstants = {
|
||||
All: -1 as Roles,
|
||||
SubmissionUpload: 1 << 6 as Roles,
|
||||
SubmissionReview: 1 << 5 as Roles,
|
||||
SubmissionRelease: 1 << 4 as Roles,
|
||||
ScriptWrite: 1 << 3 as Roles,
|
||||
MapfixUpload: 1 << 2 as Roles,
|
||||
MapfixReview: 1 << 1 as Roles,
|
||||
MapDownload: 1 << 0 as Roles,
|
||||
Empty: 0 as Roles,
|
||||
};
|
||||
|
||||
// Operations
|
||||
function hasRole(flags: Roles, role: Roles): boolean {
|
||||
return (flags & role) === role;
|
||||
}
|
||||
|
||||
export {
|
||||
Roles,
|
||||
}
|
||||
type Roles,
|
||||
RolesConstants,
|
||||
hasRole,
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user