Browse Source

view_all_projects authorities

tags/Baseline_180220205_Frontend
MSI\2Fi 9 months ago
parent
commit
4422ba4c30
2 changed files with 11 additions and 4 deletions
  1. +7
    -2
      src/components/ProjectSearch/ProjectSearchWrapper.tsx
  2. +4
    -2
      src/middleware.ts

+ 7
- 2
src/components/ProjectSearch/ProjectSearchWrapper.tsx View File

@@ -5,6 +5,7 @@ import ProjectSearchLoading from "./ProjectSearchLoading";
import { fetchUserAbilities, fetchUserStaff } from "@/app/utils/fetchUtil"; import { fetchUserAbilities, fetchUserStaff } from "@/app/utils/fetchUtil";
import { authOptions } from "@/config/authConfig"; import { authOptions } from "@/config/authConfig";
import { getServerSession } from "next-auth"; import { getServerSession } from "next-auth";
import { VIEW_ALL_PROJECTS } from "@/middleware";


interface SubComponents { interface SubComponents {
Loading: typeof ProjectSearchLoading; Loading: typeof ProjectSearchLoading;
@@ -15,11 +16,15 @@ const ProjectSearchWrapper: React.FC & SubComponents = async () => {
const userStaff = await fetchUserStaff() const userStaff = await fetchUserStaff()
const teamId = userStaff?.teamId const teamId = userStaff?.teamId
const projects = await fetchProjects(); const projects = await fetchProjects();

const abilities = await fetchUserAbilities()
const isViewAllProjectRight = [VIEW_ALL_PROJECTS].some((ability) => abilities.includes(ability))


let filteredProjects = projects let filteredProjects = projects
if (teamId) {
if (!isViewAllProjectRight) {
filteredProjects = projects.filter(project => project.teamId === teamId) filteredProjects = projects.filter(project => project.teamId === teamId)
} }
const abilities = await fetchUserAbilities()


return <ProjectSearch projects={filteredProjects} projectCategories={projectCategories} abilities={abilities}/>; return <ProjectSearch projects={filteredProjects} projectCategories={projectCategories} abilities={abilities}/>;
}; };


+ 4
- 2
src/middleware.ts View File

@@ -70,7 +70,8 @@ export const [
GENERATE_FINANCIAL_STATUS_REPORT, GENERATE_FINANCIAL_STATUS_REPORT,
GENERATE_PROJECT_CASH_FLOW_REPORT, GENERATE_PROJECT_CASH_FLOW_REPORT,
GENERATE_STAFF_MONTHLY_WORK_HOURS_ANALYSIS_REPORT, GENERATE_STAFF_MONTHLY_WORK_HOURS_ANALYSIS_REPORT,
GENERATE_CROSS_TEAM_CHARGE_REPORT
GENERATE_CROSS_TEAM_CHARGE_REPORT,
VIEW_ALL_PROJECTS
] = [ ] = [
'MAINTAIN_USER', 'MAINTAIN_USER',
'MAINTAIN_TIMESHEET', 'MAINTAIN_TIMESHEET',
@@ -122,7 +123,8 @@ export const [
'G_FINANCIAL_STATUS_REPORT', 'G_FINANCIAL_STATUS_REPORT',
'G_PROJECT_CASH_FLOW_REPORT', 'G_PROJECT_CASH_FLOW_REPORT',
'G_STAFF_MONTHLY_WORK_HOURS_ANALYSIS_REPORT', 'G_STAFF_MONTHLY_WORK_HOURS_ANALYSIS_REPORT',
'G_CROSS_TEAM_CHARGE_REPORT'
'G_CROSS_TEAM_CHARGE_REPORT',
'VIEW_ALL_PROJECTS'
] ]


const PRIVATE_ROUTES = [ const PRIVATE_ROUTES = [


Loading…
Cancel
Save