2017-02-11 5 views
0

최근에 레일 4에 대한 michael hartl의 튜토리얼을 마쳤습니다. 그는 사용자에게 admin 열을 추가하기위한 마이그레이션을 만들었습니다. 1.anyone :레일즈 앱 관리자, 사용자 및 앱 콘텐츠를 어떻게 추가 할 수 있습니까?

class AddAdminToUsers < ActiveRecord::Migration[5.0] 
    def change 
    add_column :users, :admin, :boolean, default: false 
    end 
    end 

후 그는 사용자

User.create!(name: "Example User", 
    email: "[email protected]", 
    password:    "foobar", 
    password_confirmation: "foobar", 
    admin: true) 

하지만 웹 응용 프로그램의 콘텐츠를 관리하는이 같은 관리자를 작성하는 것은 이러한 이유 때문에 안전하지 않습니다 종자 씨앗 파일을 변경 시드 파일의 코드를 볼 수있는 사람은 궁극적으로 관리자 사용자 에 대해 알게됩니다. 2. 사용자가 가입하고 관리자가 될 수있는 관리 페이지를 만들면 악의적 인 관행이됩니다.

그래서 가장 좋은 방법이어야합니다.

답변

0

프로덕션 환경에서는 서버에 로그인하고 레일스 콘솔을 열고 첫 번째 관리자를 수동으로 생성하십시오.

+0

내 앱이 heroku에 배포되었습니다.이 상황에 어떻게 접근해야합니까? –

+0

heroku 레일 콘솔을 실행하십시오. –

+0

대단히 고맙습니다. 내 문제가 많이 ... 정말 고맙습니다 !! –

0

시드 파일을 볼 수있는 사람은 schema.rb 파일에서 어떤 보안 기능을 사용할 수 있는지 확인할 수 있습니다. 그리고 대부분의 경우 다른 파일을 확인할 수있는 컨트롤러와 같은 코드를 볼 수 있습니다 이 "admin"플래그 또는 기타 멋진 인증 관련 코드.

나도에 있지만 추천 할 것입니다 : 사용자에 플래그가 설정 될 것 "password_change_required"때

  • 세트 "비밀번호 분실"뭔가이 암호는 무작위로 사용하는 기능은
  • 이 암호를 변경해야 재설정 생산 시스템에서 rails c를 통해
  • 설정 첫 번째 사용자를 true로 (그가 암호를 변경하도록 요청에, 그래서 그냥이 "password_change_required", 이후 사용자가 로그인하여 사용자에게 다른 필드를 추가)

그리고 가장 중요한 점은 users_controller (또는 사용자 업데이트를하는 모든 곳)에서 "admin"매개 변수를 필터링하는 것을 잊지 마십시오.

+0

기본적으로 "seed.rb"파일에서 사용자를 지정하는 대신 레일 콘솔에서해야합니까? ................. 흠 !! 나는 그것이 좋은 연습이 될 것이라고 생각한다. ... 어떻게 heroku에 앱이 이미 배포 된 경우 사용자에게 관리자를 지정하거나 만들 수 있습니까? heroku는 앱과 상호 작용하기 위해 irb를 열 수 있습니까? 또는 내 콘솔에서 사용자를 관리 한 다음 배포하면됩니다. 그것은 여전히 ​​영웅의 관리자가 될 것입니다. // 감사합니다. // heroku에 –

+0

당신은 당신의 기계에'heroku run rails c'와 함께 레일 콘솔을 실행할 수 있습니다. heroku-toolbelt가 설치되어 있어야합니다. – mswiszcz