access.ts 1.29 KB
export default (initialState: API.UserInfo) => {
  // 在这里按照初始化数据定义项目中的权限,统一管理
  // 参考文档 https://umijs.org/docs/max/access
  const { username, roles } = initialState;

  const canReadAdmin = roles?.includes('ADMIN');
  const canReadProcure =
    roles?.includes('PROCURE') || roles?.includes('PROCURE_MANAGER');
  const canReadFinance = roles?.includes('FINANCE');
  const canReadWarehouseKeeper = roles?.includes('WAREHOUSE_KEEPER');
  const canReadSales =
    roles?.includes('SALES_MANAGER') || roles?.includes('SALES_REPRESENTATIVE');
  const canReadSalesManager = roles?.includes('SALES_MANAGER');
  return {
    canReadAdmin: canReadAdmin,
    canReadProcure: canReadProcure || canReadAdmin,
    canReadLinda: username === 'Linda',
    canReadAdminAndFinance: canReadFinance || canReadAdmin,
    canReadSales: canReadSales,
    canReadAdminAndFinanceAndSales:
      canReadFinance || canReadAdmin || canReadSales,
    canReadAdminAndSales: canReadAdmin || canReadSales,
    canReadAdminAndWarehouseKeeperAndProcure:
      canReadWarehouseKeeper || canReadAdmin || canReadProcure,
    canReadAdminAndSalesManager: canReadAdmin || canReadSalesManager,
    canReadAdminAndSalesAndWarehouseKeeper:
      canReadAdmin || canReadSales || canReadWarehouseKeeper,
  };
};