add permissions work
This commit is contained in:
@@ -2,12 +2,20 @@
|
|||||||
|
|
||||||
import TanstakStuffTable from '@/app/ui/staff-management/tanstak-stuff-table';
|
import TanstakStuffTable from '@/app/ui/staff-management/tanstak-stuff-table';
|
||||||
import { CreateStaffForm } from '@/app/ui/forms/create-staff-form';
|
import { CreateStaffForm } from '@/app/ui/forms/create-staff-form';
|
||||||
|
import { useEmployeInfo } from '@/app/hooks/react-query/useEmployeInfo';
|
||||||
|
|
||||||
export default function Page() {
|
export default function Page() {
|
||||||
|
const { getPermissionLevel } = useEmployeInfo();
|
||||||
|
const staffPermissionLevel = getPermissionLevel('staff');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
|
{staffPermissionLevel === 3 && (
|
||||||
<CreateStaffForm />
|
<CreateStaffForm />
|
||||||
<TanstakStuffTable />
|
)}
|
||||||
|
{staffPermissionLevel > 0 && (
|
||||||
|
<TanstakStuffTable permission={staffPermissionLevel} />
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,7 @@ export interface StaffMember {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function TanstakStuffTable() {
|
export default function TanstakStuffTable({ permission }: { permission: 0 | 1 | 3 }) {
|
||||||
// Состояния
|
// Состояния
|
||||||
const [sorting, setSorting] = useState<SortingState>([]);
|
const [sorting, setSorting] = useState<SortingState>([]);
|
||||||
const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);
|
const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);
|
||||||
@@ -140,9 +140,9 @@ export default function TanstakStuffTable() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Определение колонок для сотрудников
|
// Определение колонок
|
||||||
const columns = useMemo<ColumnDef<StaffMember>[]>(
|
const columns = useMemo<ColumnDef<StaffMember>[]>(() => {
|
||||||
() => [
|
const allColumns: ColumnDef<StaffMember>[] = [
|
||||||
{
|
{
|
||||||
accessorKey: 'id',
|
accessorKey: 'id',
|
||||||
header: ({ column }) => (
|
header: ({ column }) => (
|
||||||
@@ -282,7 +282,10 @@ export default function TanstakStuffTable() {
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
]
|
||||||
|
|
||||||
|
if (permission === 3) {
|
||||||
|
allColumns.push({
|
||||||
id: 'actions',
|
id: 'actions',
|
||||||
header: () => {
|
header: () => {
|
||||||
return (
|
return (
|
||||||
@@ -320,10 +323,11 @@ export default function TanstakStuffTable() {
|
|||||||
),
|
),
|
||||||
enableSorting: false,
|
enableSorting: false,
|
||||||
enableColumnFilter: false,
|
enableColumnFilter: false,
|
||||||
},
|
},);
|
||||||
],
|
}
|
||||||
[t]
|
|
||||||
);
|
return allColumns;
|
||||||
|
}, [permission]);
|
||||||
|
|
||||||
const handleView = (staff: StaffMember) => {
|
const handleView = (staff: StaffMember) => {
|
||||||
setSelectedStaff(staff);
|
setSelectedStaff(staff);
|
||||||
|
|||||||
@@ -128,8 +128,8 @@ export default function TanstakUsersTable({ permission }: { permission: number }
|
|||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
|
|
||||||
// Определение колонок
|
// Определение колонок
|
||||||
const columns = useMemo<ColumnDef<TransformedUser>[]>(
|
const columns = useMemo<ColumnDef<TransformedUser>[]>(() => {
|
||||||
() => [
|
const allColumns: ColumnDef<TransformedUser>[] = [
|
||||||
{
|
{
|
||||||
accessorKey: 'id',
|
accessorKey: 'id',
|
||||||
header: ({ column }) => (
|
header: ({ column }) => (
|
||||||
@@ -383,16 +383,13 @@ export default function TanstakUsersTable({ permission }: { permission: number }
|
|||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
{
|
]
|
||||||
|
|
||||||
|
if (permission === 3) {
|
||||||
|
allColumns.push({
|
||||||
id: 'actions',
|
id: 'actions',
|
||||||
header: () => {
|
header: () => <div className="column">{t('actions')}</div>,
|
||||||
return (
|
|
||||||
<div className="column">
|
|
||||||
{t('actions')}
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
},
|
|
||||||
cell: ({ row }) => (
|
cell: ({ row }) => (
|
||||||
<div className="actions">
|
<div className="actions">
|
||||||
<div className="actions-group">
|
<div className="actions-group">
|
||||||
@@ -407,10 +404,11 @@ export default function TanstakUsersTable({ permission }: { permission: number }
|
|||||||
),
|
),
|
||||||
enableSorting: false,
|
enableSorting: false,
|
||||||
enableColumnFilter: false,
|
enableColumnFilter: false,
|
||||||
},
|
});
|
||||||
],
|
}
|
||||||
[]
|
|
||||||
);
|
return allColumns;
|
||||||
|
}, [permission]);
|
||||||
|
|
||||||
const handleView = async (useId: number) => {
|
const handleView = async (useId: number) => {
|
||||||
let userInfo = await fetchUsesInfo(useId);
|
let userInfo = await fetchUsesInfo(useId);
|
||||||
|
|||||||
Reference in New Issue
Block a user