1
0
forked from baron/baron-sso

프론트엔드 UI/UX를 전면 개편

This commit is contained in:
2026-02-20 17:56:53 +09:00
parent 2ec2653bfb
commit 919bcd27e8
18 changed files with 1092 additions and 736 deletions

View File

@@ -21,6 +21,7 @@ export type AuditLogListResponse = {
export type TenantSummary = {
id: string;
type: string; // PERSONAL, COMPANY, COMPANY_GROUP, USER_GROUP
name: string;
slug: string;
description: string;
@@ -33,6 +34,7 @@ export type TenantSummary = {
export type TenantCreateRequest = {
name: string;
type?: string;
slug?: string;
description?: string;
status?: string;
@@ -49,6 +51,7 @@ export type TenantListResponse = {
export type TenantUpdateRequest = {
name?: string;
type?: string;
slug?: string;
description?: string;
status?: string;
@@ -170,8 +173,10 @@ export type GroupMember = {
export type GroupSummary = {
id: string;
tenantId: string;
parentId?: string;
name: string;
description?: string;
unitType?: string;
members?: GroupMember[];
createdAt?: string;
updatedAt?: string;
@@ -179,19 +184,21 @@ export type GroupSummary = {
export type GroupCreateRequest = {
name: string;
parentId?: string;
description?: string;
unitType?: string;
};
export async function fetchGroups(tenantId: string) {
const { data } = await apiClient.get<GroupSummary[]>(
`/v1/admin/tenants/${tenantId}/user-groups`,
`/v1/admin/tenants/${tenantId}/organization`,
);
return data;
}
export async function fetchGroup(tenantId: string, groupId: string) {
const { data } = await apiClient.get<GroupSummary>(
`/v1/admin/tenants/${tenantId}/user-groups/${groupId}`,
`/v1/admin/tenants/${tenantId}/organization/${groupId}`,
);
return data;
}
@@ -201,7 +208,7 @@ export async function createGroup(
payload: GroupCreateRequest,
) {
const { data } = await apiClient.post<GroupSummary>(
`/v1/admin/tenants/${tenantId}/user-groups`,
`/v1/admin/tenants/${tenantId}/organization`,
payload,
);
return data;
@@ -209,7 +216,7 @@ export async function createGroup(
export async function deleteGroup(tenantId: string, groupId: string) {
await apiClient.delete(
`/v1/admin/tenants/${tenantId}/user-groups/${groupId}`,
`/v1/admin/tenants/${tenantId}/organization/${groupId}`,
);
}
@@ -219,7 +226,7 @@ export async function addGroupMember(
userId: string,
) {
await apiClient.post(
`/v1/admin/tenants/${tenantId}/user-groups/${groupId}/members`,
`/v1/admin/tenants/${tenantId}/organization/${groupId}/members`,
{ userId },
);
}
@@ -230,7 +237,7 @@ export async function removeGroupMember(
userId: string,
) {
await apiClient.delete(
`/v1/admin/tenants/${tenantId}/user-groups/${groupId}/members/${userId}`,
`/v1/admin/tenants/${tenantId}/organization/${groupId}/members/${userId}`,
);
}
@@ -242,7 +249,7 @@ export type GroupRole = {
export async function fetchGroupRoles(tenantId: string, groupId: string) {
const { data } = await apiClient.get<GroupRole[]>(
`/v1/admin/tenants/${tenantId}/user-groups/${groupId}/roles`,
`/v1/admin/tenants/${tenantId}/organization/${groupId}/roles`,
);
return data;
}
@@ -254,7 +261,7 @@ export async function assignGroupRole(
relation: string,
) {
await apiClient.post(
`/v1/admin/tenants/${tenantId}/user-groups/${groupId}/roles`,
`/v1/admin/tenants/${tenantId}/organization/${groupId}/roles`,
{ tenantId: targetTenantId, relation },
);
}
@@ -266,10 +273,25 @@ export async function removeGroupRole(
relation: string,
) {
await apiClient.delete(
`/v1/admin/tenants/${tenantId}/user-groups/${groupId}/roles/${targetTenantId}/${relation}`,
`/v1/admin/tenants/${tenantId}/organization/${groupId}/roles/${targetTenantId}/${relation}`,
);
}
export async function importOrgChart(tenantId: string, file: File) {
const formData = new FormData();
formData.append("file", file);
const { data } = await apiClient.post(
`/v1/admin/tenants/${tenantId}/organization/import`,
formData,
{
headers: {
"Content-Type": "multipart/form-data",
},
},
);
return data;
}
// API Key Management (M2M)
export type ApiKeyCreateRequest = {
name: string;
@@ -315,6 +337,8 @@ export type UserSummary = {
tenant?: TenantSummary;
metadata?: Record<string, unknown>;
department?: string;
position?: string;
jobTitle?: string;
createdAt: string;
updatedAt: string;
};
@@ -334,6 +358,8 @@ export type UserCreateRequest = {
role?: string;
companyCode?: string;
department?: string;
position?: string;
jobTitle?: string;
};
export type UserCreateResponse = UserSummary & {
@@ -348,6 +374,8 @@ export type UserUpdateRequest = {
status?: string;
companyCode?: string;
department?: string;
position?: string;
jobTitle?: string;
};
export async function fetchUsers(limit = 50, offset = 0, search?: string) {