feat: 모듈 API 권한 관리 작업

This commit is contained in:
2025-04-17 11:22:16 +09:00
parent 7d4cdb095d
commit 9fb4f6aad9
5 changed files with 38 additions and 13 deletions
@@ -30,11 +30,10 @@ export class RoleAuthorizationsApiService implements RoleAuthorizationsService {
}
public async updateRoleAuthorizations(
authorizationNo: string,
data: RoleAuthorizationsData,
): Promise<RoleAuthorizations> {
const response = await client.put<RoleAuthorizations>(
`${ENDPOINT.USER_SERVICE.ROLE_AUTHORIZATIONS}/${authorizationNo}`,
`${ENDPOINT.USER_SERVICE.ROLE_AUTHORIZATIONS}`,
data,
);
return response.data;
@@ -38,7 +38,6 @@ export interface RoleAuthorizationsService {
data: RoleAuthorizationsData,
) => Promise<RoleAuthorizations>;
updateRoleAuthorizations: (
authorizationNo: string,
data: RoleAuthorizationsData,
) => Promise<RoleAuthorizations>;
}
@@ -18,13 +18,19 @@ import {
DialogHeader,
DialogTitle,
DialogTrigger,
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@common/components/ui";
import { ENDPOINT } from "@/shared/config";
import { useAlertStore } from "@/shared/lib/use-alert-store";
import {
roleAuthorizationFormSchema,
type RoleAuthorizationFormData,
type RoleAuthorizationData,
roleAuthorizationsFormSchema,
type RoleAuthorizationsFormData,
type RoleAuthorizationsData,
} from "../model/role-authorizations-interface";
import { columns } from "../model/role-authorizations-table-columns";
import type { Authorizations } from "../model/authorizations-interface";
@@ -37,6 +43,7 @@ type ManagementAuthorityDialogProps = {
function ManagementAuthorityDialog({
authorizationNo,
rowData,
...props
}: ManagementAuthorityDialogProps) {
const { confirm } = useConfirm();
@@ -53,15 +60,15 @@ function ManagementAuthorityDialog({
});
const { mutateAsync: saveRoleAuthorization } = useMutation({
mutationFn: (data: RoleAuthorizationData) =>
RoleAuthorizationsApi.createRoleAuthorization(data),
mutationFn: (data: RoleAuthorizationsData) =>
RoleAuthorizationsApi.createRoleAuthorizations(data),
onSuccess: () => {
alert("저장되었습니다.");
},
});
const form = useForm<RoleAuthorizationFormData>({
resolver: zodResolver(roleAuthorizationFormSchema),
const form = useForm<RoleAuthorizationsFormData>({
resolver: zodResolver(roleAuthorizationsFormSchema),
values: {
roleAuthorizations: roleAuthorizationList?.content ?? [],
},
@@ -88,14 +95,34 @@ function ManagementAuthorityDialog({
<Dialog {...props}>
<DialogTrigger asChild>
<Button size="sm" onClick={() => setIsOpened(true)}>
권한관리
관리
</Button>
</DialogTrigger>
<DialogContent className="max-w-[60rem]" aria-describedby={undefined}>
<DialogHeader>
<DialogTitle>모듈API 권한관리</DialogTitle>
</DialogHeader>
<DataTable table={table} />
<div className="flex flex-col gap-8">
<Table variant="line">
<TableHeader>
<TableRow>
<TableHead>API명</TableHead>
<TableHead>요청 메소드</TableHead>
<TableHead>API URL</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell align="center">
{rowData?.authorizationName}
</TableCell>
<TableCell align="center">{rowData?.httpMethodCode}</TableCell>
<TableCell align="center">{rowData?.urlPatternValue}</TableCell>
</TableRow>
</TableBody>
</Table>
<DataTable table={table} />
</div>
<DialogFooter className="!justify-center">
<Button size="lg" onClick={handleSave}>
허용
+1 -1
View File
@@ -15,7 +15,7 @@ import type {
Authorizations,
AuthorizationsParams,
} from "../model/authorizations-interface";
import { columns } from "../model/table-columns";
import { columns } from "../model/authorizations-table-columns";
import { AuthorizationsApi } from "../api/authorization-service";
function ModulePage() {