일반적인 질문이 있습니다 ...사용자가 다른 사용자 계정에 액세스하지 못하도록 차단
Michael Hartl의 튜토리얼 예제를 사용하여 사용자 모델을 빌드했습니다. 내가 곤란을 겪고있는 것은 다른 사용자에게 정보를 제공하여 URL을 변경하는 것입니다. 나는 Friendly_id를 id -> name에서 바꾼다.하지만 다른 사람에게 이름을 바꾼다면 홈 페이지가 표시 될 것이다. 내 사용자가 그렇게 할 수 없도록 제한하고 싶습니다.
Devise 또는 CanCan 또는 이와 같은 구현이 없어도 가능합니까? 사용자가 URL 바에서 이름을 변경하려고하는지 확인하는 유효성 검사를 던지려고합니다. 즉, 이름이 현재 로그인 한 사용자인지 확인하고 로그인하지 않은 경우 현재 사용자로 리디렉션합니다.
모델 정보가 필요하면 알려 주시기 바랍니다. 이것은 단지 추측
# Each time you make an action on your UsersController this filter will run
before_filter :validate_url_hack
def validate_url_hack
# Check the params hash to see if the passed :id matches the current user's id
# (note the .to_i on params[:id], as you are comparing against a Fixnum)
unless params[:id].to_i == current_user.id
# This line redirects the user to the previous action
redirect_to request.referer
end
end
, 그러나 나는 이런 식으로 뭔가가 작동해야한다고 생각합니다 :
TIA는
관계를 설정하면 다음과 같이 통화 범위를 지정할 수 있습니다.'@account = current_user.accounts.find (params [: id])' – Unixmonkey
그래서 (미안 해요.) 계정 모델을 만들고, 사용자 모델 has_one : account 및 def show as @account = current_user.accounts.find (params [: id])에 적용 하시겠습니까? – RubyNewbie
현재 설치 프로그램이 사용자가 admin인지 아닌지를 확인한 후 "show"페이지를 렌더링합니다. 그러나 URL로 이동하여 이름을 변경하면 사용자에게 "표시"페이지도 렌더링됩니다. 사용자는 다른 "쇼"페이지 이외의 다른 페이지에 액세스 할 수 없습니다. (해당되는 경우) – RubyNewbie