사이트 사용자 중 어떤 부분을 등록했는지에 따라 어떻게 다른 사용자 역할을 만들 수 있습니까? 예를 들어 세 가지 사용자 유형이 있습니다. 하나는 관리자이고 다른 하나는 일반 사용자이고 세 번째 사용자는 운영자입니다. 나는 다음과 같은 문자열 중 하나 절약 할 수등록하는 동안 다른 사용자 역할을 할당하는 방법은 무엇입니까?
create_table "users", force: true do |t|
t.string "username"
t.string "email"
t.string "role"
t.string "password"
end
내부의 "역할"열 : "관리자", "일반"또는 "사회자"
나는 다음과 같은 테이블이 있습니다.
이미 Michael Hartl's Ruby on Rails Tutorial의 도움으로 인증 시스템을 만들었습니다. 또한 railscasts 에피소드 #189 Embedded Association에서 여러 사용자 역할을 다루는 정말 좋은 접근 방식을 보았습니다.
문제는 비디오 사용자 역할은 등록 중에 선택되며 사용자가 사용자 역할을 보지 못하게하는 것입니다. 나는이 사이트의 두 부분을 가지고있다. 사용자가 한 섹션을 통해 등록하면 그는 "정규"역할을 가지며 다른 섹션을 통해 등록하면 역할 "중재자"를 갖게됩니다. 역할 "admin"은 다르게 설정됩니다.
"role"매개 변수를 전달하면 "moderator"또는 "role": "regular"하지만 안전한 옵션으로는 보이지 않습니다. 사용자에게 보이기 때문에 다른 매개 변수를 쉽게 전달할 수 있습니다. 예를 들어 사이트를 손상시키려는 일반 사용자는 "역할"을 전달할 수 있습니다 : "사회자"
감사합니다.
감사합니다. 한 부분에 정기적으로 가입하는 사이트와 하단 가입 링크의 한 부분에서 "편집자가됩니다". 가입 양식은 동일합니다. 차이점은 두 번째 양식 사용자가 관리자 패널에 승인 할 수있는 편집기가되기 위해 적용된다는 것입니다. 문제는 매개 변수로 표시되지 않는 "역할"열을 처리하는 방법을 잘 모르겠습니다. 내게는 공격자가 쉽게 관리자가 될 수 있기 때문에 보이지 않아야합니다. 나는 너무 혼란스럽지 않기를 바란다 :) – Cristiano
당신이 더 간단하게 만들고 싶다면 "편집자되기"링크에서 다른 매개 변수를 보낼 수있다. 그리고 들어오는 게시물 요청의 일부라면 당신이 할 수있는 방식으로 저장할 수있다. 승인하거나 비 승인합니다. 또한 가입 양식에 체크 박스를 추가하여 사람들이 "편집자가되기를 원하십니까?"를 확인할 수 있습니다. –
감사합니다. 나는 그것을 시도 할 것이다! – Cristiano