diff --git a/dictation_client/src/components/auth/constants.ts b/dictation_client/src/components/auth/constants.ts index 55e074a..d000d87 100644 --- a/dictation_client/src/components/auth/constants.ts +++ b/dictation_client/src/components/auth/constants.ts @@ -16,3 +16,15 @@ export const USER_ROLES = { AUTHOR: "author", TYPIST: "typist", } as const; + +/** + * 階層 + * @const {string[]} + */ +export const TIERS = { + TIER1: "1", + TIER2: "2", + TIER3: "3", + TIER4: "4", + TIER5: "5", +} as const; diff --git a/dictation_client/src/components/header/constants.ts b/dictation_client/src/components/header/constants.ts index ede1a6a..f3788f1 100644 --- a/dictation_client/src/components/header/constants.ts +++ b/dictation_client/src/components/header/constants.ts @@ -5,6 +5,7 @@ export const HEADER_MENUS_USER = "User"; export const HEADER_MENUS_LICENSE = "License"; export const HEADER_MENUS_DICTATIONS = "Dictations"; export const HEADER_MENUS_WORKFLOW = "Workflow"; +export const HEADER_MENUS_PARTNER = "Partners"; export const HEADER_MENUS_XXX = "XXX"; // XXX 仮のタブ export const HEADER_MENUS: { label: HeaderMenus; path: LoginedPaths }[] = [ @@ -13,6 +14,7 @@ export const HEADER_MENUS: { label: HeaderMenus; path: LoginedPaths }[] = [ { label: HEADER_MENUS_LICENSE, path: "/license" }, { label: HEADER_MENUS_USER, path: "/user" }, { label: HEADER_MENUS_WORKFLOW, path: "/workflow" }, + { label: HEADER_MENUS_PARTNER, path: "/partners" }, { label: HEADER_MENUS_XXX, path: "/xxx" }, // XXX 仮のタブ ]; @@ -21,4 +23,18 @@ export const HEADER_NAME = "ODMS Cloud"; /** * adminのみに表示するヘッダータブ */ -export const ADMIN_ONLY_TABS = [HEADER_MENUS_LICENSE, HEADER_MENUS_USER]; +export const ADMIN_ONLY_TABS = [ + HEADER_MENUS_LICENSE, + HEADER_MENUS_USER, + HEADER_MENUS_PARTNER, +]; + +/** + * 第1~4階層のみに表示するヘッダータブ + */ +export const TIER1_TO_TIER4_ONLY_TABS = [HEADER_MENUS_PARTNER]; + +/** + * admin,standardでなく、第1~5階層でもないアカウントに表示する空のヘッダータブ + */ +export const INVALID_ACCOUNT_TABS = []; diff --git a/dictation_client/src/components/header/loginedHeader.tsx b/dictation_client/src/components/header/loginedHeader.tsx index c124236..5a4260c 100644 --- a/dictation_client/src/components/header/loginedHeader.tsx +++ b/dictation_client/src/components/header/loginedHeader.tsx @@ -1,11 +1,10 @@ import React from "react"; -import { isAdminUser } from "features/auth/utils"; import styles from "styles/app.module.scss"; - +import { getFilteredMenus } from "./utils"; import logo from "../../assets/images/OMS_logo_black.svg"; import ac from "../../assets/images/account_circle.svg"; import { LoginedPaths } from "./types"; -import { ADMIN_ONLY_TABS, HEADER_MENUS, HEADER_NAME } from "./constants"; +import { HEADER_NAME } from "./constants"; interface HeaderProps { name: string; @@ -15,10 +14,7 @@ interface HeaderProps { // ログイン後のヘッダー const LoginedHeader: React.FC = (props: HeaderProps) => { const { name, activePath } = props; - const isAdmin = isAdminUser(); - const filteredMenus = isAdmin - ? HEADER_MENUS - : HEADER_MENUS.filter((item) => !ADMIN_ONLY_TABS.includes(item.label)); + const filterMenus = getFilteredMenus(); return (
@@ -27,7 +23,7 @@ const LoginedHeader: React.FC = (props: HeaderProps) => {
{HEADER_NAME}