diff options
Diffstat (limited to 'lib/vendors/table/vendors-table-columns.tsx')
| -rw-r--r-- | lib/vendors/table/vendors-table-columns.tsx | 77 |
1 files changed, 8 insertions, 69 deletions
diff --git a/lib/vendors/table/vendors-table-columns.tsx b/lib/vendors/table/vendors-table-columns.tsx index f2de179c..738b8b5f 100644 --- a/lib/vendors/table/vendors-table-columns.tsx +++ b/lib/vendors/table/vendors-table-columns.tsx @@ -61,16 +61,6 @@ interface GetColumnsProps { userId: number; } -// 권한 체크 헬퍼 함수들 (향후 실제 권한 시스템과 연동) -const checkEditAssociationPermission = (userId: number): boolean => { - // TODO: 실제 권한 체크 로직 구현 - // 예: 특정 역할(ADMIN, VENDOR_MANAGER 등)을 가진 사용자만 수정 가능 - // const userRoles = await getUserRoles(userId); - // return userRoles.includes('VENDOR_MANAGER') || userRoles.includes('ADMIN'); - - // 개발 중에는 모든 사용자가 수정 가능 - return true; -}; @@ -118,8 +108,6 @@ export function getColumns({ setRowAction, router, userId }: GetColumnsProps): C enableHiding: false, cell: function Cell({ row }) { const [isUpdatePending, startUpdateTransition] = React.useTransition() - const isApproved = row.original.status === "PQ_APPROVED"; - const afterApproved = row.original.status === "ACTIVE"; return ( <DropdownMenu> @@ -133,13 +121,11 @@ export function getColumns({ setRowAction, router, userId }: GetColumnsProps): C </Button> </DropdownMenuTrigger> <DropdownMenuContent align="end" className="w-56"> - {(isApproved || afterApproved) && ( - <DropdownMenuItem - onSelect={() => setRowAction({ row, type: "update" })} - > - 레코드 편집 - </DropdownMenuItem> - )} + <DropdownMenuItem + onSelect={() => setRowAction({ row, type: "update" })} + > + 레코드 편집 + </DropdownMenuItem> <DropdownMenuItem onSelect={() => { @@ -420,9 +406,8 @@ export function getColumns({ setRowAction, router, userId }: GetColumnsProps): C ); } - // 성조회가입여부 처리 - 권한에 따라 드롭다운 또는 읽기전용 배지 + // 성조회가입여부 처리 - 읽기전용 배지만 표시 (편집은 update-vendor-sheet에서 처리) if (cfg.id === "isAssociationMember") { - const [isUpdating, setIsUpdating] = React.useState(false); const memberVal = row.original.isAssociationMember as string | null; const getDisplayText = (value: string | null) => { @@ -430,7 +415,7 @@ export function getColumns({ setRowAction, router, userId }: GetColumnsProps): C case "Y": return "가입"; case "N": return "미가입"; case "E": return "해당없음"; - default: return "-"; + default: return "정보없음"; } }; @@ -447,53 +432,7 @@ export function getColumns({ setRowAction, router, userId }: GetColumnsProps): C } }; - // 권한 체크: 성조회가입여부 수정 권한이 있는지 확인 - const hasEditPermission = checkEditAssociationPermission(userId); - - const handleValueChange = async (newValue: string) => { - // "NONE" 값을 null로 변환 - const actualValue = newValue === "NONE" ? null : newValue; - - setIsUpdating(true); - try { - await modifyVendor({ - id: String(row.original.id), - isAssociationMember: actualValue, - userId, - vendorName: row.original.vendorName, - comment: `성조회가입여부 변경: ${getDisplayText(memberVal)} → ${getDisplayText(actualValue)}` - } as any); - - toast.success("성조회가입여부가 업데이트되었습니다."); - } catch (error) { - toast.error("업데이트에 실패했습니다: " + getErrorMessage(error)); - } finally { - setIsUpdating(false); - } - }; - - // 권한이 있는 경우 드롭다운 표시 - if (hasEditPermission) { - return ( - <Select - value={memberVal || "NONE"} - onValueChange={handleValueChange} - disabled={isUpdating} - > - <SelectTrigger className="w-[120px] h-8"> - <SelectValue /> - </SelectTrigger> - <SelectContent> - <SelectItem value="NONE">-</SelectItem> - <SelectItem value="Y">가입</SelectItem> - <SelectItem value="N">미가입</SelectItem> - <SelectItem value="E">해당없음</SelectItem> - </SelectContent> - </Select> - ); - } - - // 권한이 없는 경우 읽기전용 배지 표시 + // 읽기전용 배지만 표시 return ( <Badge variant="outline" className={getBadgeStyle(memberVal)}> {getDisplayText(memberVal)} |
