permission fix
deploy to danak / build_and_deploy (push) Has been cancelled

This commit is contained in:
hamid zarghami
2026-07-21 10:26:50 +03:30
parent bddf675d66
commit 09adc8bdd0
3 changed files with 37 additions and 33 deletions
+1
View File
@@ -159,6 +159,7 @@ export const CONTENT_PERMISSION_RESOURCES = ["blogs", "learnings", "advertisemen
export const FINANCIAL_PERMISSION_RESOURCES = ["payments", "invoices", "transactions", "discounts", "bank_accounts"] as const;
export const SUPPORT_PERMISSION_RESOURCES = ["support_plan", "tickets"] as const;
export const TASK_MANAGER_PERMISSION_RESOURCES = ["workspace", "project", "task", "task_phase"] as const;
export const USERS_SIDEBAR_PERMISSION_RESOURCES = ["admins", ...TASK_MANAGER_PERMISSION_RESOURCES] as const;
export const PRODUCT_PERMISSION_RESOURCES = ["dmenu", "dkala", "dpage", "dmail"] as const;
type PermissionEntry = { name: string };
+26 -31
View File
@@ -1,37 +1,32 @@
import { FC, ReactNode } from 'react'
import { Link } from 'react-router-dom'
import { FC, ReactNode } from "react";
type Props = {
title: string
icon: ReactNode,
color: string,
count: number,
description: string,
to?: string
}
title: string;
icon: ReactNode;
color: string;
count: number;
description: string;
to?: string;
};
const ItemDashboard: FC<Props> = (props: Props) => {
return (
<div className="p-6 min-w-[40%] xl:min-w-[15%] flex flex-col items-center xl:items-start flex-1 h-[178px] bg-white rounded-3xl">
<div className="size-10 rounded-full bg-[#EEF0F7] flex justify-center items-center">{props.icon}</div>
<div className="mt-5">{props.title}</div>
return (
<Link to={props.to ? props.to : ''} className='p-6 min-w-[40%] xl:min-w-[15%] flex flex-col items-center xl:items-start flex-1 h-[178px] bg-white rounded-3xl'>
<div className='size-10 rounded-full bg-[#EEF0F7] flex justify-center items-center'>
{props.icon}
</div>
<div className='mt-5'>
{props.title}
</div>
<div className="mt-5 text-xs text-description flex gap-1.5 items-center">
<div
style={{ background: props.color }}
className="size-1.5 rounded-full"
></div>
<div className="flex gap-0.5">
<div>{props.count}</div>
<div className="whitespace-nowrap">{props.description}</div>
</div>
</div>
</div>
);
};
<div className='mt-5 text-xs text-description flex gap-1.5 items-center'>
<div style={{ background: props.color }} className='size-1.5 rounded-full'></div>
<div className='flex gap-0.5'>
<div>{props.count}</div>
<div className='whitespace-nowrap'>
{props.description}
</div>
</div>
</div>
</Link>
)
}
export default ItemDashboard
export default ItemDashboard;
+10 -2
View File
@@ -26,6 +26,8 @@ import {
hasPermission,
PRODUCT_PERMISSION_RESOURCES,
SUPPORT_PERMISSION_RESOURCES,
TASK_MANAGER_PERMISSION_RESOURCES,
USERS_SIDEBAR_PERMISSION_RESOURCES,
} from "../helpers/permissions";
import { clx } from "../helpers/utils";
import { useGetProfile } from "../pages/profile/hooks/useProfileData";
@@ -65,6 +67,12 @@ const SideBar: FC = () => {
return Pages.dashboard;
})();
const usersDefaultLink = (() => {
if (hasPermission(permissions, "admins")) return Pages.users.list;
if (hasAnyPermission(permissions, TASK_MANAGER_PERMISSION_RESOURCES)) return Pages.taskmanager.workspaceList;
return Pages.users.list;
})();
useEffect(() => {
const groupName = getSubMenuNameFromPath(location.pathname);
@@ -197,9 +205,9 @@ const SideBar: FC = () => {
}
title={t("sidebar.users")}
isActive={isGroupActive("users")}
link={Pages.users.list}
link={usersDefaultLink}
name="users"
activeName="admins"
activeNames={USERS_SIDEBAR_PERMISSION_RESOURCES}
/>
<SideBarItem