Skip to content

Commit

Permalink
Cleanup permission checks
Browse files Browse the repository at this point in the history
  • Loading branch information
SchrodingersGat committed Oct 19, 2024
1 parent be54679 commit 83b8bce
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 45 deletions.
55 changes: 55 additions & 0 deletions src/frontend/src/pages/part/PartAllocationPanel.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import { t } from '@lingui/macro';
import { Accordion } from '@mantine/core';

import { StylishText } from '../../components/items/StylishText';
import { ModelType } from '../../enums/ModelType';
import { UserRoles } from '../../enums/Roles';
import { useUserState } from '../../states/UserState';
import BuildAllocatedStockTable from '../../tables/build/BuildAllocatedStockTable';
import SalesOrderAllocationTable from '../../tables/sales/SalesOrderAllocationTable';

export default function PartAllocationPanel({ part }: { part: any }) {
const user = useUserState();

return (
<>
<Accordion
multiple={true}
defaultValue={['buildallocations', 'salesallocations']}
>
{part.component && user.hasViewRole(UserRoles.build) && (
<Accordion.Item value="buildallocations" key="buildallocations">
<Accordion.Control>
<StylishText size="lg">{t`Build Order Allocations`}</StylishText>
</Accordion.Control>
<Accordion.Panel>
<BuildAllocatedStockTable
partId={part.pk}
modelField="build"
modelTarget={ModelType.build}
showBuildInfo
showPartInfo
allowEdit
/>
</Accordion.Panel>
</Accordion.Item>
)}
{part.salable && user.hasViewRole(UserRoles.sales_order) && (
<Accordion.Item value="salesallocations" key="salesallocations">
<Accordion.Control>
<StylishText size="lg">{t`Sales Order Allocations`}</StylishText>
</Accordion.Control>
<Accordion.Panel>
<SalesOrderAllocationTable
partId={part.pk}
modelField="order"
modelTarget={ModelType.salesorder}
showOrderInfo
/>
</Accordion.Panel>
</Accordion.Item>
)}
</Accordion>
</>
);
}
50 changes: 5 additions & 45 deletions src/frontend/src/pages/part/PartDetail.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { t } from '@lingui/macro';
import {
Accordion,
Alert,
Center,
Grid,
Expand Down Expand Up @@ -54,7 +53,6 @@ import {
EditItemAction,
OptionsActionDropdown
} from '../../components/items/ActionDropdown';
import { StylishText } from '../../components/items/StylishText';
import InstanceDetail from '../../components/nav/InstanceDetail';
import NavigationTree from '../../components/nav/NavigationTree';
import { PageDetail } from '../../components/nav/PageDetail';
Expand Down Expand Up @@ -89,7 +87,6 @@ import {
import { useUserState } from '../../states/UserState';
import { BomTable } from '../../tables/bom/BomTable';
import { UsedInTable } from '../../tables/bom/UsedInTable';
import BuildAllocatedStockTable from '../../tables/build/BuildAllocatedStockTable';
import { BuildOrderTable } from '../../tables/build/BuildOrderTable';
import { PartParameterTable } from '../../tables/part/PartParameterTable';
import PartPurchaseOrdersTable from '../../tables/part/PartPurchaseOrdersTable';
Expand All @@ -99,10 +96,10 @@ import { RelatedPartTable } from '../../tables/part/RelatedPartTable';
import { ManufacturerPartTable } from '../../tables/purchasing/ManufacturerPartTable';
import { SupplierPartTable } from '../../tables/purchasing/SupplierPartTable';
import { ReturnOrderTable } from '../../tables/sales/ReturnOrderTable';
import SalesOrderAllocationTable from '../../tables/sales/SalesOrderAllocationTable';
import { SalesOrderTable } from '../../tables/sales/SalesOrderTable';
import { StockItemTable } from '../../tables/stock/StockItemTable';
import { TestStatisticsTable } from '../../tables/stock/TestStatisticsTable';
import PartAllocationPanel from './PartAllocationPanel';
import PartPricingPanel from './PartPricingPanel';
import PartSchedulingDetail from './PartSchedulingDetail';
import PartStocktakeDetail from './PartStocktakeDetail';
Expand Down Expand Up @@ -591,45 +588,7 @@ export default function PartDetail() {
label: t`Allocations`,
icon: <IconBookmarks />,
hidden: !part.component && !part.salable,
content: (
<Accordion
multiple={true}
defaultValue={['buildallocations', 'salesallocations']}
>
{part.component && (
<Accordion.Item value="buildallocations" key="buildallocations">
<Accordion.Control>
<StylishText size="lg">{t`Build Order Allocations`}</StylishText>
</Accordion.Control>
<Accordion.Panel>
<BuildAllocatedStockTable
partId={part.pk}
modelField="build"
modelTarget={ModelType.build}
showBuildInfo
showPartInfo
allowEdit
/>
</Accordion.Panel>
</Accordion.Item>
)}
{part.salable && (
<Accordion.Item value="salesallocations" key="salesallocations">
<Accordion.Control>
<StylishText size="lg">{t`Sales Order Allocations`}</StylishText>
</Accordion.Control>
<Accordion.Panel>
<SalesOrderAllocationTable
partId={part.pk}
modelField="order"
modelTarget={ModelType.salesorder}
showOrderInfo
/>
</Accordion.Panel>
</Accordion.Item>
)}
</Accordion>
)
content: part.pk ? <PartAllocationPanel part={part} /> : <Skeleton />
},
{
name: 'bom',
Expand All @@ -644,7 +603,7 @@ export default function PartDetail() {
name: 'builds',
label: t`Build Orders`,
icon: <IconTools />,
hidden: !part.assembly || !part.active,
hidden: !part.assembly || !user.hasViewRole(UserRoles.build),
content: part.pk ? <BuildOrderTable partId={part.pk} /> : <Skeleton />
},
{
Expand Down Expand Up @@ -677,7 +636,8 @@ export default function PartDetail() {
name: 'suppliers',
label: t`Suppliers`,
icon: <IconBuilding />,
hidden: !part.purchaseable,
hidden:
!part.purchaseable || !user.hasViewRole(UserRoles.purchase_order),
content: part.pk && (
<SupplierPartTable
params={{
Expand Down

0 comments on commit 83b8bce

Please sign in to comment.