나는 다른 사용자가 만드는 게시물을 보여주는 페이지가 있으며, 사용자가 인덱스로 이동하면 해당 사용자의 user_id =가 현재 사용자에게 표시되도록 할 수있었습니다. user_id . 그러나 URL로 이동하여 게시물 번호를 변경하면 다른 사용자의 소식을 볼 수 있으며 편집 할 수도 있습니다. 컨트롤러를 변경하려고 시도했습니다 @time_sheets = TimeSheet.where(:user_id => current_user.id)find(params[:id])
또한보기에서 <% if @time_sheet.user_id == @currentuser.id %>
을 사용해 보았지만 둘 다 작동하지 않는 것 같습니다. 내가 도대체 뭘 잘못하고있는 겁니까?다른 사용자가 다른 사용자의 게시물을 볼 수 없도록 설정
답변
컨트롤러에서는이 있어야합니다 당신은 연결 사용자 has_many 작업 표가있는 경우
@time_sheet = TimeSheet.where(user_id: current_user.id).find(params[:id])
또는 :
@time_sheet = current_user.time_sheets.find(params[:id])
그것은 작동합니다.
아직이 코드를 호출하기 전에 누군가가 로그인했는지 확인해야합니다.
위대한 기능을 수행했으며, 오류 페이지를 표시하려고하면 오류 페이지가 표시되지 않습니다. –
404 올바르게 기억되면 404가 기본적으로 표시됩니다. 이거 나쁜거야? "잘됐다"면 답변을 수락 하시겠습니까? :) –
아, 레일에 새로 왔고 로컬로 실행 중이므로 돌아 오지 않는 방법을 보여주는 페이지로 리디렉션됩니다. 프로덕션으로 이동하면이 페이지 대신에 바로 404가됩니다. –
before_filter를 사용하고 다른 사용자의 페이지에 액세스하려고하면 오류 메시지가 표시된 홈 페이지로 사용자를 리디렉션 할 수 있습니다.
before_filter :validate_user
def validate_user
timesheet_user_id = Timesheet.find(params[:id]).user_id
redirect_to :root, :alert => "Unauthorized" unless timesheet_user_id == current_user.id
end
당신은 필터 here
'params [: id]'는 사용자 ID가 아닌 time_sheet id입니다. –
답변 수정 – usha
- 1. 사용자가 MySQL의 다른 IP에서 연결할 수 없도록 설정
- 2. 사용자가 다른 사용자의 테이블을 볼 수 있습니다. ORACLEDB
- 3. 사용자가 전체 경로를 볼 수 없도록 차단
- 4. 비공개 사용자가 ASP.NET에서 웹 페이지를 볼 수 없도록 제한하는 방법
- 5. 다른 사용자의 방문 페이지 설정
- 6. 사용자가 다른 사용자의 프로필 정보를 볼 수있는 방법은 무엇입니까?
- 7. Java EE에서 사용자가 페이지를 볼 수 없도록 차단하는 방법
- 8. 사용자가 로그를 볼 수 없도록 logg에 대한 승인을받을 수 있습니다.
- 9. 사용자가 다른 사람의 게시물을 편집하지 못하게하는 방법
- 10. 사용자가 다른 페이지에 액세스 할 수 없도록 관리자 페이지 만들기
- 11. 선택 옵션 값을 숨겨서 사용자가 볼 수 없도록
- 12. 사용자가 다른 사용자의 게시물을 게시 한 후 어떻게 게시 할 수 있습니까?
- 13. 다른 사용자의 프로필에 액세스하는 사용자가 로그인했습니다.
- 14. Ruby/Rails 다른 사용자가 볼 수있는 게시물의 수를 제한하려면 어떻게합니까?
- 15. 현재 사용자가 올린 사용자의 게시물을 쿼리
- 16. 사용자가 볼 수 없도록 내 프로젝트에 텍스트 파일을 추가하는 방법 ..?
- 17. 일부 사용자가 일부 페이지를 볼 수 없도록 차단합니다.
- 18. laravel은 인증되지 않은 사용자가 파일을 볼 수 없도록 차단합니다.
- 19. 사용자가 자바 스크립트 파일을 볼 수 없도록 차단
- 20. 사용자가 내 JavaScript 소스 파일을 볼 수 없도록 방지
- 21. 사용자가 액세스 권한이없는 페이지를 볼 수 없도록 제한하려면 어떻게합니까?
- 22. 오라클 10g 익스프레스 - 다른 사용자가 다른 사용자의 테이블을 보도록 허용
- 23. 레일스는 현재 사용자가 올린 사용자의 게시물을 보여줍니다.
- 24. TFS 사용자가 다른 사용자의 태그 생성 권한을 설정할 수 없습니다.
- 25. Firebase : 사용자가 다른 사용자의 계정을 만들도록 허용합니다.
- 26. 사용자가 다른 사용자의 레코드에 액세스하지 못하게하려면 어떻게합니까?
- 27. 웹 사이트를 외부에서 볼 수 없도록 설정하십시오.
- 28. 사용자가 다른 사용자의 프로필에 게시하도록 허용하는 방법
- 29. 개발자가 프로젝트를 볼 수 없도록 TFS 구성
- 30. 다른 사용자의 스크립트를 종료하십시오
에 대한 자세한 내용을보실 수 있습니다 [RailsCasts 에피소드] (http://railscasts.com/episodes/385-authorization-from-scratch-part-1), 이것과 두 번째 에피소드를 확인 아마 가장 좋은 인증 방법. 승인 한 대답은 certian 링크의 그의 게시물을 current_user에게 보여 주지만 다른 게시물에는 액세스 할 수 없습니다. –
어떻게 사람이 액세스 할 것인가? URL을 통해 질문을 시도했지만 현재 귀하의 게시물이 아닌 게시물을 쿼리하려고하면 404가 표시됩니다. –
http : // localhost : 3000/timesheets/: id/edit (실제 아이디 여야 함) 시도해보십시오 (올바른 포트 또는 리소스 이름이 아닌 경우 올바른 번호를 입력하십시오) –