add permissions work

This commit is contained in:
smanylov
2026-05-22 16:49:58 +07:00
parent 09937b2a7b
commit b59cd5d9ff
3 changed files with 36 additions and 26 deletions
@@ -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);
+13 -15
View File
@@ -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);