class AuthorizeRbac::AuthorizeRbacGenerator

Constants

ACTIONS

Public Instance Methods

generate_controllers() click to toggle source
# File lib/generators/authorize_rbac/authorize_rbac_generator.rb, line 6
def generate_controllers
  ACTIONS.include?(action_name) ?  self.send(action_name) : help
end

Private Instance Methods

action_name() click to toggle source
# File lib/generators/authorize_rbac/authorize_rbac_generator.rb, line 11
def action_name
  name.to_s.downcase
end
help() click to toggle source
# File lib/generators/authorize_rbac/authorize_rbac_generator.rb, line 57
def help
  puts File.read "#{AuthorizeRbacGenerator.source_root}/USAGE"
end
initializer() click to toggle source
# File lib/generators/authorize_rbac/authorize_rbac_generator.rb, line 22
def initializer
   copy_file "#{AuthorizeRbacGenerator.source_root}/templates/initializer.rb", "config/initializers/authorize_rbac.rb"
end
install() click to toggle source
# File lib/generators/authorize_rbac/authorize_rbac_generator.rb, line 15
def install
  user_migrate
  role_migrate
  update_application_controller
  update_user_model
end
role_migrate() click to toggle source
# File lib/generators/authorize_rbac/authorize_rbac_generator.rb, line 30
def role_migrate
  generate "model", "Role name:string permissions:text"
  update_role_model
end
update_application_controller() click to toggle source
# File lib/generators/authorize_rbac/authorize_rbac_generator.rb, line 35
def update_application_controller
  inject_into_file 'app/controllers/application_controller.rb',
    "  include AuthorizeRbac\n",
    after: "class ApplicationController < ActionController::Base\n"

  inject_into_file 'app/controllers/application_controller.rb',
    "  before_action :authorization_filter, except: [ :logout ]\n",
    after: "protect_from_forgery with: :exception\n"
end
update_role_model() click to toggle source
# File lib/generators/authorize_rbac/authorize_rbac_generator.rb, line 51
def update_role_model
  inject_into_file 'app/models/role.rb',
    " serialize :permissions, JSON\n",
    after: "class Role < ApplicationRecord\n"
end
update_user_model() click to toggle source
# File lib/generators/authorize_rbac/authorize_rbac_generator.rb, line 45
def update_user_model
  inject_into_file 'app/models/user.rb',
    " belongs_to :role\n",
    after: "class User < ActiveRecord::Base\n"
end
user_migrate() click to toggle source
# File lib/generators/authorize_rbac/authorize_rbac_generator.rb, line 26
def user_migrate
  generate "migration", "AddRoleToUsers role:references"
end