2010-04-19 3 views
1

Authlogic을 구현했습니다. 나는 이것이 authlogic 특정 quesetion 아니라고 믿는다. 사용자 모델이 있고 각 사용자에게 데이터베이스에 "로그인"이라는 열이 있다고 가정합니다.Rails Authlogic 사용자가 로그인/사용자 이름을 변경하지 못하도록합니다.

사용자를 만들면 로그인 열이 채워집니다. 그러나 사용자가 설정 한 후에는 사용자가 로그인을 변경할 수 없도록하고 싶습니다.

현재 사용자보기에서 _form.html.erb 파일의 텍스트 필드를 제거했습니다. 그러나, 그것은 아마도 여전히 권리를 통해 액세스 할 수 있습니까?

로그인을 설정하면 어떻게 변경 될 수 있습니까?

답변

4

필자가 아는 한 Authlogic이이 케이스를 처리하므로 사용자 이름을 덮어 쓰는 것에 대해 걱정할 필요가 없습니다. 일반적으로 이러한 유형의 사례를 처리하기 위해 모델의 attr_accessible 속성에서 제외하고 UserController의 create 액션에 직접 할당하여 보호 된 속성으로 사용자 이름을 설정할 수 있습니다.이 작업은 단일 사례의 대량 할당 보호를 둘러싼 것입니다 어디 설정하고 싶습니다. 예 :

class User < ActiveRecord::Base 
    attr_accessible :email, :password, :other_field1, :other_field2 # note username is not listed 
end 

class UserController < AppController 
    def create 
    @user = User.new(params[:user]) 
    @user.username = params[:user][:username] 
    @user.save 
    # ... 
    end 
end 
+0

아 이것은 완벽한 설명입니다. 어떤 이유로 든 authlogic은 로그인에 대한 잠금을 설정하지 않습니다 (적어도 저에게는 그렇지 않습니다. 내가 잘못 설정했거나 최근에 변경 했습니까?). 그러나 이것은 위대한 작품. – jim

관련 문제