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