fix: Change the policy to allow Update, Delete, Submit to writer only
- 담당자가 로그인 한 유저 이름과 같을 때 수정, 삭제, 제출 가능하도록 변경
This commit is contained in:
parent
bd89552cc7
commit
34319dadcd
@ -1,35 +1,54 @@
|
|||||||
'use client'
|
'use client'
|
||||||
import { useRouter } from 'next/navigation'
|
import { useRouter } from 'next/navigation'
|
||||||
import { useServey } from '@/hooks/useSurvey'
|
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 router = useRouter()
|
||||||
|
const { session } = useSessionStore()
|
||||||
const { submitSurvey, deleteSurvey } = useServey(surveyId)
|
const { submitSurvey, deleteSurvey } = useServey(surveyId)
|
||||||
|
const [userNm, setUserNm] = useState('')
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (session?.isLoggedIn) {
|
||||||
|
setUserNm(session?.userNm ?? '')
|
||||||
|
}
|
||||||
|
}, [session, setUserNm])
|
||||||
|
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
if (isTemporary) {
|
if (isTemporary) {
|
||||||
alert('一時保存されたデータは提出できません。')
|
alert('一時保存されたデータは提出できません。')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (confirm('提出しますか??')) {
|
if (userNm === representative) {
|
||||||
if (surveyId) {
|
if (confirm('提出しますか??')) {
|
||||||
// TODO: 제출 페이지 추가
|
if (surveyId) {
|
||||||
alert('SUBMIT POPUP!!!!!!!!!!!')
|
// TODO: 제출 페이지 추가
|
||||||
await submitSurvey()
|
alert('SUBMIT POPUP!!!!!!!!!!!')
|
||||||
|
await submitSurvey()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
alert('担当者のみ提出可能です。')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const handleUpdate = () => {
|
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 handleDelete = async () => {
|
||||||
const result = confirm('削除しますか?')
|
if (confirm('削除しますか?')) {
|
||||||
console.log('🚀 ~ handleDelete ~ result:', result)
|
|
||||||
if (result) {
|
|
||||||
if (surveyId) {
|
if (surveyId) {
|
||||||
await deleteSurvey()
|
if (userNm === representative) {
|
||||||
router.push('/survey-sale')
|
await deleteSurvey()
|
||||||
|
router.push('/survey-sale')
|
||||||
|
} else {
|
||||||
|
alert('担当者のみ削除可能です。')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,7 +56,7 @@ export default function DetailForm({
|
|||||||
<input type="text" className="input-frame" disabled defaultValue={surveyDetail?.customer_name ?? ''} />
|
<input type="text" className="input-frame" disabled defaultValue={surveyDetail?.customer_name ?? ''} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<DetailButton isTemporary={isTemporary} surveyId={Number(surveyDetail?.id)} />
|
<DetailButton isTemporary={isTemporary} surveyId={Number(surveyDetail?.id)} representative={surveyDetail?.representative ?? ''} />
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
|||||||
@ -196,7 +196,7 @@ export default function RoofDetailForm({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<DetailButton isTemporary={false} surveyId={Number(surveyDetail?.id)} />
|
<DetailButton isTemporary={false} surveyId={Number(surveyDetail?.id)} representative={surveyDetail?.representative ?? ''} />
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
|||||||
@ -121,7 +121,7 @@ export default function BasicForm() {
|
|||||||
onChange={(e) => handleChange('representative', e.target.value)}
|
onChange={(e) => handleChange('representative', e.target.value)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{(userType === 'musubi' || userType === 'order' || userType?.includes('musubi')) && (
|
{(userType === 'order' || userType?.includes('musubi')) && (
|
||||||
<>
|
<>
|
||||||
<div className="data-input-form-bx">
|
<div className="data-input-form-bx">
|
||||||
<div className="data-input-form-tit">販売店</div>
|
<div className="data-input-form-tit">販売店</div>
|
||||||
@ -202,10 +202,6 @@ export default function BasicForm() {
|
|||||||
onChange={(e) => handleChange('address', e.target.value)}
|
onChange={(e) => handleChange('address', e.target.value)}
|
||||||
>
|
>
|
||||||
<option value="">東京都</option>
|
<option value="">東京都</option>
|
||||||
<option value="">東京都</option>
|
|
||||||
<option value="">東京都</option>
|
|
||||||
<option value="">東京都</option>
|
|
||||||
<option value="">東京都</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user