forked from baron/baron-sso
프론트엔드 UI/UX를 전면 개편
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user