함께

2012-06-04 2 views
6

내가 인증/인증 시스템을 구축하기 위해 노력하고있어, 나는 혼란스러워지고있어, 그래서 몇 가지 질문이 있습니다 튜토리얼을 많이함께

  1. 을, 사람들은 사용자/역할 HABTM 관계를 설정합니다. 각 사용자가 여러 역할을 가질 수 있지만 각 사용자가 하나의 역할 만 갖기를 원한다면이 필요합니까? "활성"및 "비활성"사용자에 대한 옵션을 원할 경우 역할 또는 다른 것이 있습니까?
  2. Cancan wiki에서 한 사용자가 하나의 역할을 갖기를 원한다면 속성을 작성한 다음 "can : manage, all : user.role =="admin ""을 사용하면됩니다."admin"이 문자열 일 때마다 위험하기 때문에 위험한가요? 이 이 중요합니까? 이 문제를 해결하는 더 좋은 방법은 무엇입니까?

내가 관련된 모든 설명서를 읽어 최선을 시도하고 나는 또한 http://starqle.com/articles/rails-3-authentication-and-authorization-with-devise-and-cancan-part-1/ 및 tonyamoyal.com/2010을 읽었습니다하지만 나는이 튜토리얼

http://railsapps.github.com/tutorial-rails-bootstrap-devise-cancan.html

시작/09/29/rails-authentication-with-devcan-and-cancan-part-2-restful-resources-for-administrators/

나는 내가 원하는 방식으로 작동하도록 할 수 없다. 어떻게해야합니까?

답변

8

1. 여러 역할 또는 응용 프로그램에서 역할을 정의하는 방법을

캉캉는 불가지론 역할 테이블에 필요하지 않습니다. 사용자 모델에서 쉽게 역할 필드를 가질 수 있습니다.

"활성"및 "비활성"사용자의 경우 두 가지 옵션이 있습니다. 해당 상태에 대한 필드가 있거나 "비활성"역할을 가질 수 있으며 다른 모든 역할을 "활성"으로 간주 할 수 있습니다. 이것은 "활성"이 의미하는 것과 응용 프로그램에서 해당 정보를 사용하는 방법에 따라 다릅니다.

2. 사용자 역할을 문자열에 저장하는 데는 아무런 문제가 없습니다.

역할이 문자열로 저장되어 있어도 안전성이 떨어지지는 않습니다. 그러나 사용자 역할은 attr_protected to prevent mass assignment이어야합니다.

attr_protected :role 

그런 식으로 사용자는 자신의 역할을 업데이트 할 수 없습니다.

관련 문제