작성
·
191
0
안녕하세요
강의 너무 유익하게 잘 보고 있습니다 .
이번 ModelForm 편을 보면서
힌트 주신대로 작성자를 구분하는 decorator을 작성 해보았습니다 .
그런데 이것을 views.py 에 작성을 했는데
어디론가 빼야 할 거 같은데
이것을 장고의 decorator.py 파일로 첨부해 넣는게 좋은지
아니면 app 을 하나 생성해서 넣는게 좋은지 어떤 방식이 좋을지 한번 여쭙고 싶습니다 .
그리고
글을 수정하러 들어오는 사용자가 본인이 아닐시에
redirect 해주는 것과 PermissionDenied 처리 해주는 것중
어떤 것이 보안이나 효율면에서 좋은지 여쭙고 싶습니다.
처음으로 교수님 힌트를 얻어 decorator을 만들기를 시도했는데 의도한대로 기능이 작동하니 아주 기분이 좋습니다 .
감사의 말씀으로 질문을 끝내겠습니다 :)
감사합니다.
답변 1
0
안녕하세요.
직접 장식자를 만드셔서 의도하신 대로 잘 동작하신다니, 저도 무척 기쁘네요. 감사합니다. :-)
질문에서 redirect를 하는 것과 PermissionDenided를 하는 것에서 보안/효율의 차이는 없습니다. 이는 단지 UX 이슈로서, 화면을 어떻게 설계하느냐의 문제라고 봅니다.
본인의 포스팅이 아닌 포스팅 수정 페이지로 들어오는 경우는, 브라우저에 URL을 직접 쳐서 들어오는 경우가 아닐까요? 대개 포스팅 수정 버튼을 클릭해서 수정 페이지로 들어갈테고, 본인의 글이 아니면 수정 버튼도 보여지지 않을테니깐요.
그러니 브라우저에 URL을 직접 쳐서 들어오는 경우는 바로 redirect를 시키기보다, PermissionDenied를 통해 경고 화면을 보여주는 것이 유저에게 시각적으로 강력하게 메세지를 전달할 수 있을 테구요. 화면에 대한 개발 공수는 들겠죠.
반면 redirect는 화면을 따로 개발할 필요없이, messages framework를 통해 에러 메세지만 보여질테니 개발공수는 적게 들겠죠.
화이팅입니다. :-)
감사합니다!! :)