fix: Change the policy to allow Update, Delete, Submit to writer only

- 담당자가 로그인 한 유저 이름과 같을 때 수정, 삭제, 제출 가능하도록 변경
This commit is contained in:
Dayoung 2025-05-12 15:45:37 +09:00
parent bd89552cc7
commit 34319dadcd
4 changed files with 35 additions and 20 deletions

View File

@ -1,35 +1,54 @@
'use client'
import { useRouter } from 'next/navigation'
import { useServey } from '@/hooks/useSurvey'
import { useSessionStore } from '@/store/session'
import { useEffect, useState } from 'react'
export default function DetailButton({ isTemporary, surveyId }: { isTemporary: boolean; surveyId: number }) {
export default function DetailButton({ isTemporary, surveyId, representative }: { isTemporary: boolean; surveyId: number; representative: string }) {
const router = useRouter()
const { session } = useSessionStore()
const { submitSurvey, deleteSurvey } = useServey(surveyId)
const [userNm, setUserNm] = useState('')
useEffect(() => {
if (session?.isLoggedIn) {
setUserNm(session?.userNm ?? '')
}
}, [session, setUserNm])
const handleSubmit = async () => {
if (isTemporary) {
alert('一時保存されたデータは提出できません。')
return
}
if (confirm('提出しますか??')) {
if (surveyId) {
// TODO: 제출 페이지 추가
alert('SUBMIT POPUP!!!!!!!!!!!')
await submitSurvey()
if (userNm === representative) {
if (confirm('提出しますか??')) {
if (surveyId) {
// TODO: 제출 페이지 추가
alert('SUBMIT POPUP!!!!!!!!!!!')
await submitSurvey()
}
}
} else {
alert('担当者のみ提出可能です。')
}
}
const handleUpdate = () => {
router.push(`/survey-sale/basic-info?id=${surveyId}&isTemp=${isTemporary}`)
if (userNm === representative) {
router.push(`/survey-sale/basic-info?id=${surveyId}&isTemp=${isTemporary}`)
} else {
alert('担当者のみ修正可能です。')
}
}
const handleDelete = async () => {
const result = confirm('削除しますか?')
console.log('🚀 ~ handleDelete ~ result:', result)
if (result) {
if (confirm('削除しますか?')) {
if (surveyId) {
await deleteSurvey()
router.push('/survey-sale')
if (userNm === representative) {
await deleteSurvey()
router.push('/survey-sale')
} else {
alert('担当者のみ削除可能です。')
}
}
}
}

View File

@ -56,7 +56,7 @@ export default function DetailForm({
<input type="text" className="input-frame" disabled defaultValue={surveyDetail?.customer_name ?? ''} />
</div>
</div>
<DetailButton isTemporary={isTemporary} surveyId={Number(surveyDetail?.id)} />
<DetailButton isTemporary={isTemporary} surveyId={Number(surveyDetail?.id)} representative={surveyDetail?.representative ?? ''} />
</div>
</>
)

View File

@ -196,7 +196,7 @@ export default function RoofDetailForm({
</div>
</div>
</div>
<DetailButton isTemporary={false} surveyId={Number(surveyDetail?.id)} />
<DetailButton isTemporary={false} surveyId={Number(surveyDetail?.id)} representative={surveyDetail?.representative ?? ''} />
</div>
</>
)

View File

@ -121,7 +121,7 @@ export default function BasicForm() {
onChange={(e) => handleChange('representative', e.target.value)}
/>
</div>
{(userType === 'musubi' || userType === 'order' || userType?.includes('musubi')) && (
{(userType === 'order' || userType?.includes('musubi')) && (
<>
<div className="data-input-form-bx">
<div className="data-input-form-tit"></div>
@ -202,10 +202,6 @@ export default function BasicForm() {
onChange={(e) => handleChange('address', e.target.value)}
>
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>
</div>
</div>