노래하듯 이야기하고, 춤추듯 정복하라.

[Ruby & Rails] 관리자 권한 부여하기, 사용한 Gem: Cancancan + Rolify 본문

프로그래밍/Ruby & Rails

[Ruby & Rails] 관리자 권한 부여하기, 사용한 Gem: Cancancan + Rolify

hyeoke 2018. 8. 15. 19:56

* 필자는 Devise gem이 설치되어 코딩이 완료된 상태를 가정함.


# gem 설치

:cancancan => 권한부여

:rolify => 역할, 등급 부여

# Gemfile
gem 'devise'
gem 'cancancan'
gem 'rolify'

-> $gem install bundler

-> $bundle install


# 터미널

-> $rails g cancan:ability

-> $rails g rolify Role User


=> model 폴더에 abilty.rb 파일이 생성됨


# 역할 부여하기 => user.rb

after_create :assign_default_role

def assign_default_role
  emails = ['inamorfati@likelion.org', 'seokk1209@likelion.org', 'wjs7541@likelion.org']
  if emails.include? self.email
    self.add_role(:admin)
  end
end

 => 유저가 Create 되기 전에 회원가입 폼에 입력된 email이 배열값에 include 되어 있다면, "admin"이란 역할을 부여하라!


# 능력 부여하기 => ability.rb

user ||= User.new # guest user (not logged in)
if user.nil?
      can :read, :all
else
      can [:read, :write] :all
end


# 컨트롤러 post_controller.rb

=> load_and_authorize_resource

 


Comments