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 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);
+13 -15
View File
@@ -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);