active_admin_role 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +17 -0
  5. data/.ruby-style.yml +242 -0
  6. data/.travis.yml +5 -0
  7. data/Appraisals +12 -0
  8. data/Gemfile +24 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +79 -0
  11. data/Rakefile +7 -0
  12. data/active_admin_role.gemspec +21 -0
  13. data/app/models/active_admin/managed_resource.rb +64 -0
  14. data/app/models/active_admin/permission.rb +59 -0
  15. data/config/locales/en.yml +40 -0
  16. data/config/locales/ja.yml +37 -0
  17. data/gemfiles/.bundle/config +2 -0
  18. data/gemfiles/rails42.gemfile +26 -0
  19. data/gemfiles/rails50.gemfile +27 -0
  20. data/lib/active_admin_role/active_admin/dsl.rb +24 -0
  21. data/lib/active_admin_role/active_admin/resource_controller.rb +21 -0
  22. data/lib/active_admin_role/can_can/ability.rb +15 -0
  23. data/lib/active_admin_role/config.rb +17 -0
  24. data/lib/active_admin_role/engine.rb +15 -0
  25. data/lib/active_admin_role/manageable_resource.rb +44 -0
  26. data/lib/active_admin_role/model.rb +7 -0
  27. data/lib/active_admin_role/role_based_authorizable.rb +45 -0
  28. data/lib/active_admin_role/version.rb +3 -0
  29. data/lib/active_admin_role.rb +21 -0
  30. data/lib/generators/active_admin_role/USAGE +9 -0
  31. data/lib/generators/active_admin_role/helper.rb +64 -0
  32. data/lib/generators/active_admin_role/install_generator.rb +54 -0
  33. data/lib/generators/active_admin_role/templates/admin/permission.rb +71 -0
  34. data/lib/generators/active_admin_role/templates/initializer.rb +18 -0
  35. data/lib/generators/active_admin_role/templates/migration/add_role_to_admin_users.rb +5 -0
  36. data/lib/generators/active_admin_role/templates/migration/create_active_admin_managed_resources.rb +13 -0
  37. data/lib/generators/active_admin_role/templates/migration/create_active_admin_permissions.rb +13 -0
  38. data/lib/generators/active_admin_role/templates/model/ability.rb +17 -0
  39. data/tasks/test.rake +10 -0
  40. metadata +110 -0
@@ -0,0 +1,26 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 4.2.0"
6
+ gem "activeadmin", "1.0.0.pre4"
7
+ gem "devise", "~> 4.2.0"
8
+ gem "pry"
9
+ gem "appraisal"
10
+
11
+ group :development do
12
+ gem "bundler", "~> 1.13.0"
13
+ gem "rake", "~> 10.0"
14
+ gem "rubocop", "~> 0.40.0"
15
+ end
16
+
17
+ group :test do
18
+ gem "capybara"
19
+ gem "rspec-rails"
20
+ gem "database_cleaner"
21
+ gem "shoulda-matchers"
22
+ gem "sqlite3", :platforms => :mri
23
+ gem "poltergeist"
24
+ end
25
+
26
+ gemspec :path => "../"
@@ -0,0 +1,27 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 5.0.0"
6
+ gem "activeadmin", :github => "activeadmin/activeadmin"
7
+ gem "devise", "~> 4.2.0"
8
+ gem "pry"
9
+ gem "appraisal"
10
+ gem "inherited_resources", :github => "activeadmin/inherited_resources"
11
+
12
+ group :development do
13
+ gem "bundler", "~> 1.13.0"
14
+ gem "rake", "~> 10.0"
15
+ gem "rubocop", "~> 0.40.0"
16
+ end
17
+
18
+ group :test do
19
+ gem "capybara"
20
+ gem "rspec-rails"
21
+ gem "database_cleaner"
22
+ gem "shoulda-matchers"
23
+ gem "sqlite3", :platforms => :mri
24
+ gem "poltergeist"
25
+ end
26
+
27
+ gemspec :path => "../"
@@ -0,0 +1,24 @@
1
+ module ActiveAdminRole
2
+ module ActiveAdmin
3
+ module DSL
4
+ def role_changeable
5
+ scope(:all, default: true)
6
+
7
+ controller.resource_class.roles.each_key(&method(:scope))
8
+
9
+ controller.resource_class.roles.each_key do |role|
10
+ batch_action "assign as #{role}" do |ids|
11
+ formatted_ids = ids - [current_admin_user.id.to_s]
12
+ resource_class.where(id: formatted_ids).update_all(role: resource_class.roles[role])
13
+
14
+ if Rails::VERSION::MAJOR >= 5
15
+ redirect_back fallback_location: admin_root_url, notice: t("views.admin_user.notice.assigned", role: role)
16
+ else
17
+ redirect_to :back, notice: t("views.admin_user.notice.assigned", role: role)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,21 @@
1
+ module ActiveAdminRole
2
+ module ActiveAdmin
3
+ module ResourceController
4
+ def self.included(klass)
5
+ klass.class_eval do
6
+ if Rails::VERSION::MAJOR >= 4
7
+ before_action :authorize_access_resource!, except: %i(index new create show edit update destroy)
8
+ else
9
+ before_filter :authorize_access_resource!, except: %i(index new create show edit update destroy)
10
+ end
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def authorize_access_resource!
17
+ authorize_resource!(active_admin_config.resource_class)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,15 @@
1
+ module ActiveAdminRole
2
+ module CanCan
3
+ module Ability
4
+ private
5
+
6
+ def register_role_based_abilities(user)
7
+ return if user.guest_user?
8
+
9
+ (::ActiveAdmin::Permission.indexed_cache[user.role] || []).select(&:active?).each do |permission|
10
+ send(*permission.to_condition)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ module ActiveAdminRole
2
+ class Config
3
+ attr_accessor :roles, :super_user_roles, :guest_user_roles, :user_class_name, :default_state
4
+
5
+ def initialize
6
+ @roles = { guest: 0, support: 1, staff: 2, manager: 3, admin: 99 }
7
+ @guest_user_roles = [:guest]
8
+ @super_user_roles = [:admin]
9
+ @user_class_name = "AdminUser"
10
+ @default_state = :cannot
11
+ end
12
+
13
+ def default_state=(value)
14
+ @default_state = value.to_s == "can" ? :can : :cannot
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ require "rails/engine"
2
+
3
+ module ActiveAdminRole
4
+ class Engine < ::Rails::Engine
5
+ initializer "active_admin_role" do
6
+ ActiveSupport.on_load :active_record do
7
+ ActiveRecord::Base.send :extend, ::ActiveAdminRole::Model
8
+ end
9
+
10
+ ActiveSupport.on_load :after_initialize do
11
+ ::ActiveAdmin::ResourceController.send :include, ::ActiveAdminRole::ActiveAdmin::ResourceController
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,44 @@
1
+ require "set"
2
+
3
+ module ActiveAdminRole
4
+ class ManageableResource
5
+ def call
6
+ ::ActiveAdmin.application.namespaces[:admin].resources.inject([]) do |result, resource|
7
+ class_name = resource.controller.resource_class.to_s
8
+ name = resource.resource_name.name
9
+ actions = collect_defined_actions(resource)
10
+
11
+ result += eval_actions(actions).map do |action|
12
+ { class_name: class_name, name: name, action: action }
13
+ end
14
+
15
+ result
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def collect_defined_actions(resource)
22
+ if resource.respond_to?(:defined_actions)
23
+ defined_actions = resource.defined_actions
24
+ member_actions = resource.member_actions.map(&:name)
25
+ collection_actions = resource.collection_actions.map(&:name)
26
+ batch_actions = resource.batch_actions_enabled? ? [:batch_action] : []
27
+
28
+ defined_actions | member_actions | member_actions | collection_actions | batch_actions
29
+ else
30
+ resource.page_actions.map(&:name) | [:index]
31
+ end
32
+ end
33
+
34
+ def eval_actions(actions)
35
+ actions.inject(Set.new) do |result, action|
36
+ result << (actions_dictionary[action] || action).to_s
37
+ end
38
+ end
39
+
40
+ def actions_dictionary
41
+ @_actions_dictionary ||= ::ActiveAdmin::BaseController::Authorization::ACTIONS_DICTIONARY.dup
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,7 @@
1
+ module ActiveAdminRole
2
+ module Model
3
+ def role_based_authorizable
4
+ send :include, ::ActiveAdminRole::RoleBasedAuthorizable
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,45 @@
1
+ module ActiveAdminRole
2
+ module RoleBasedAuthorizable
3
+ def self.included(klass)
4
+ klass.class_eval do
5
+ extend ClassMethods
6
+
7
+ enum role: config.roles
8
+ delegate :super_user_roles, :guest_user_roles, to: :class
9
+ validates :role, presence: true
10
+ end
11
+ end
12
+
13
+ def super_user?
14
+ role.in?(super_user_roles)
15
+ end
16
+
17
+ def guest_user?
18
+ role.in?(guest_user_roles)
19
+ end
20
+
21
+ module ClassMethods
22
+ def manageable_roles
23
+ @_manageable_roles ||= roles.except(*manageless_roles)
24
+ end
25
+
26
+ def super_user_roles
27
+ @_super_user_roles ||= config.super_user_roles.try(:map, &:to_s) || []
28
+ end
29
+
30
+ def guest_user_roles
31
+ @_guest_users ||= config.guest_user_roles.try(:map, &:to_s) || []
32
+ end
33
+
34
+ private
35
+
36
+ def manageless_roles
37
+ (super_user_roles + guest_user_roles).flatten.compact
38
+ end
39
+
40
+ def config
41
+ ::ActiveAdminRole.config
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,3 @@
1
+ module ActiveAdminRole
2
+ VERSION = "0.1.0".freeze
3
+ end
@@ -0,0 +1,21 @@
1
+ require "active_admin"
2
+ require "active_admin_role/active_admin/dsl"
3
+ require "active_admin_role/active_admin/resource_controller"
4
+ require "active_admin_role/can_can/ability"
5
+ require "active_admin_role/config"
6
+ require "active_admin_role/engine"
7
+ require "active_admin_role/manageable_resource"
8
+ require "active_admin_role/model"
9
+ require "active_admin_role/role_based_authorizable"
10
+
11
+ module ActiveAdminRole
12
+ def self.configure
13
+ yield(config)
14
+ end
15
+
16
+ def self.config
17
+ @_config ||= Config.new
18
+ end
19
+ end
20
+
21
+ ::ActiveAdmin::DSL.send :include, ActiveAdminRole::ActiveAdmin::DSL
@@ -0,0 +1,9 @@
1
+ Description:
2
+ Generates the necessary files to get you up and running with ActiveAdminRole gem
3
+
4
+ Examples:
5
+ rails generate active_admin_role:install
6
+
7
+ This will generate the core migration file, the initializer file and the 'AdminUser' model class.
8
+
9
+ rails generate active_admin_role:install --model User
@@ -0,0 +1,64 @@
1
+ module ActiveAdminRole
2
+ module Generators
3
+ module Helper
4
+ def self.included(klass)
5
+ klass.send :extend, ClassMethods
6
+ end
7
+
8
+ private
9
+
10
+ def model_class_name
11
+ options[:model] ? options[:model].classify : "AdminUser"
12
+ end
13
+
14
+ def model_file_path
15
+ model_name.underscore
16
+ end
17
+
18
+ def model_path
19
+ @model_path ||= File.join("app", "models", "#{model_file_path}.rb")
20
+ end
21
+
22
+ def namespace
23
+ Rails::Generators.namespace if Rails::Generators.respond_to?(:namespace)
24
+ end
25
+
26
+ def namespaced?
27
+ !!namespace
28
+ end
29
+
30
+ def model_name
31
+ if namespaced?
32
+ [namespace.to_s] + [model_class_name]
33
+ else
34
+ [model_class_name]
35
+ end.join("::")
36
+ end
37
+
38
+ def inject_into_model
39
+ indents = " " * (namespaced? ? 2 : 1)
40
+ inject_into_class model_path, model_class_name, "#{indents}role_based_authorizable\n"
41
+ end
42
+
43
+ def migration_class_name
44
+ if Rails::VERSION::MAJOR >= 5
45
+ "ActiveRecord::Migration[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
46
+ else
47
+ "ActiveRecord::Migration"
48
+ end
49
+ end
50
+
51
+ module ClassMethods
52
+ # Define the next_migration_number method (necessary for the migration_template method to work)
53
+ def next_migration_number(dirname)
54
+ if ActiveRecord::Base.timestamped_migrations
55
+ sleep 1 # make sure each time we get a different timestamp
56
+ Time.new.utc.strftime("%Y%m%d%H%M%S")
57
+ else
58
+ format("%.3d", (current_migration_number(dirname) + 1))
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,54 @@
1
+ require "rails/generators/migration"
2
+ require "generators/active_admin_role/helper"
3
+
4
+ module ActiveAdminRole
5
+ module Generators
6
+ class InstallGenerator < ::Rails::Generators::Base
7
+ include Rails::Generators::Migration
8
+ include ActiveAdminRole::Generators::Helper
9
+
10
+ source_root File.expand_path("../templates", __FILE__)
11
+
12
+ class_option :model, optional: true,
13
+ type: :string,
14
+ banner: "model",
15
+ desc: "Specify the model class name if you will use anything other than `AdminUser`",
16
+ default: "AdminUser"
17
+
18
+ def copy_initializer_file
19
+ template "initializer.rb", "config/initializers/active_admin_role.rb"
20
+ end
21
+
22
+ def configure_model
23
+ generate :"active_admin:install #{model_class_name}" unless model_class_name.safe_constantize
24
+ inject_into_model
25
+ end
26
+
27
+ def copy_migration_files
28
+ migration_template "migration/add_role_to_admin_users.rb", "db/migrate/add_role_to_#{model_class_name.tableize}.rb", migration_class_name: migration_class_name
29
+ migration_template "migration/create_active_admin_managed_resources.rb", "db/migrate/create_active_admin_managed_resources.rb", migration_class_name: migration_class_name
30
+ migration_template "migration/create_active_admin_permissions.rb", "db/migrate/create_active_admin_permissions.rb", migration_class_name: migration_class_name
31
+ end
32
+
33
+ def copy_model_file
34
+ template "model/ability.rb", "app/models/ability.rb"
35
+ end
36
+
37
+ def configure_active_admin
38
+ gsub_file "config/initializers/active_admin.rb",
39
+ "# config.authorization_adapter = ActiveAdmin::CanCanAdapter",
40
+ "config.authorization_adapter = ActiveAdmin::CanCanAdapter"
41
+ end
42
+
43
+ def copy_admin_permission_file
44
+ template "admin/permission.rb", "app/admin/permission.rb"
45
+ end
46
+
47
+ def configure_admin_user_file
48
+ inject_into_file "app/admin/#{model_file_path}.rb",
49
+ " role_changeable\n",
50
+ after: "ActiveAdmin.register #{model_class_name} do\n"
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,71 @@
1
+ ActiveAdmin.register ::ActiveAdmin::Permission, as: "Permission" do
2
+ actions :index
3
+
4
+ filter :state, as: :select, collection: controller.resource_class.states
5
+
6
+ filter :managed_resource_action_equals, as: :select,
7
+ label: ::ActiveAdmin::ManagedResource.human_attribute_name(:action),
8
+ <%- if Rails::VERSION::MAJOR >= 5 -%>
9
+ collection: -> { ::ActiveAdmin::ManagedResource.distinct.order(:action).pluck(:action) }
10
+ <%- else -%>
11
+ collection: -> { ::ActiveAdmin::ManagedResource.uniq.order(:action).pluck(:action) }
12
+ <%- end -%>
13
+
14
+ filter :managed_resource_name_equals, as: :select,
15
+ label: ::ActiveAdmin::ManagedResource.human_attribute_name(:name),
16
+ <%- if Rails::VERSION::MAJOR >= 5 -%>
17
+ collection: -> { ::ActiveAdmin::ManagedResource.distinct.pluck(:name).sort }
18
+ <%- else -%>
19
+ collection: -> { ::ActiveAdmin::ManagedResource.uniq.pluck(:name).sort }
20
+ <%- end -%>
21
+
22
+ filter :managed_resource_class_name_equals, as: :select,
23
+ label: ::ActiveAdmin::ManagedResource.human_attribute_name(:class_name),
24
+ <%- if Rails::VERSION::MAJOR >= 5 -%>
25
+ collection: -> { ::ActiveAdmin::ManagedResource.distinct.order(:class_name).pluck(:class_name) }
26
+ <%- else -%>
27
+ collection: -> { ::ActiveAdmin::ManagedResource.uniq.order(:class_name).pluck(:class_name) }
28
+ <%- end -%>
29
+
30
+ scope :all, default: true
31
+
32
+ controller.resource_class.manageable_roles.each_key(&method(:scope))
33
+
34
+ controller.resource_class.states.each_key do |state|
35
+ batch_action state do |ids|
36
+ resource_class.clear_cache
37
+ resource_class.where(id: ids).update_all(state: resource_class.states[state])
38
+ <%- if Rails::VERSION::MAJOR >= 5 -%>
39
+ redirect_back fallback_location: admin_root_url, notice: t("views.permission.notice.state_changed", state: state)
40
+ <%- else -%>
41
+ redirect_to :back, notice: t("views.permission.notice.state_changed", state: state)
42
+ <%- end -%>
43
+ end
44
+ end
45
+
46
+ collection_action :reload, method: :post do
47
+ ::ActiveAdmin::ManagedResource.reload
48
+ <%- if Rails::VERSION::MAJOR >= 5 -%>
49
+ redirect_back(fallback_location: admin_root_url, notice: t("views.permission.notice.reloaded"))
50
+ <%- else -%>
51
+ redirect_to :back, notice: t("views.permission.notice.reloaded")
52
+ <%- end -%>
53
+ end
54
+
55
+ action_item :reload do
56
+ link_to t("views.permission.action_item.reload"), reload_admin_permissions_path, method: :post
57
+ end
58
+
59
+ includes :managed_resource
60
+
61
+ index do
62
+ selectable_column
63
+ column :role
64
+ column(:state) do |record|
65
+ status_tag(record.state, record.can? ? :ok : nil)
66
+ end
67
+ column :action
68
+ column :name
69
+ column :class_name
70
+ end
71
+ end
@@ -0,0 +1,18 @@
1
+ ActiveAdminRole.configure do |config|
2
+ # [Required:Hash]
3
+ # == Role | default: { guest: 0, support: 1, staff: 2, manager: 3, admin: 99 }
4
+ config.roles = { guest: 0, support: 1, staff: 2, manager: 3, admin: 99 }
5
+
6
+ # [Optional:Array]
7
+ # == Special roles which don't need to manage on database
8
+ config.super_user_roles = [:admin]
9
+ config.guest_user_roles = [:guest]
10
+
11
+ # [Optional:String]
12
+ # == User class name | default: 'AdminUser'
13
+ config.user_class_name = "<%= model_class_name %>"
14
+
15
+ # [Optional:Symbol]
16
+ # == Default permission | default: :cannot
17
+ config.default_state = :cannot
18
+ end
@@ -0,0 +1,5 @@
1
+ class AddRoleTo<%= model_class_name.tableize.camelize %> < <%= migration_class_name %>
2
+ def change
3
+ add_column :<%= model_class_name.tableize %>, :role, :integer, null: false, limit: 1, default: 0
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ class CreateActiveAdminManagedResources < <%= migration_class_name %>
2
+ def change
3
+ create_table :active_admin_managed_resources do |t|
4
+ t.string :class_name, null: false
5
+ t.string :action, null: false
6
+ t.string :name
7
+
8
+ t.timestamp null: false
9
+ end
10
+
11
+ add_index :active_admin_managed_resources, [:class_name, :action, :name], unique: true, name: "active_admin_managed_resources_index"
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreateActiveAdminPermissions < <%= migration_class_name %>
2
+ def change
3
+ create_table :active_admin_permissions do |t|
4
+ t.integer :managed_resource_id, null: false
5
+ t.integer :role, null: false, limit: 1, default: 0
6
+ t.integer :state, null: false, limit: 1, default: 0
7
+
8
+ t.timestamp null: false
9
+ end
10
+
11
+ add_index :active_admin_permissions, [:managed_resource_id, :role], unique: true, name: "active_admin_permissions_index"
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ class Ability
2
+ include CanCan::Ability
3
+ include ActiveAdminRole::CanCan::Ability
4
+
5
+ def initialize(user)
6
+ user ||= <%= model_class_name %>.new
7
+
8
+ if user.super_user?
9
+ can :manage, :all
10
+ else
11
+ register_role_based_abilities(user)
12
+ end
13
+
14
+ # NOTE: Everyone can read the page of Permission Deny
15
+ can :read, ActiveAdmin::Page, name: "Dashboard"
16
+ end
17
+ end
data/tasks/test.rake ADDED
@@ -0,0 +1,10 @@
1
+ desc "Creates a test rails app for the specs to run against"
2
+ task :setup do
3
+ require "rails/version"
4
+ system("mkdir spec/rails") unless File.exist?("spec/rails")
5
+ system "bundle exec rails new spec/rails/rails-#{Rails::VERSION::STRING} -m spec/support/rails_template.rb --skip-spring --skip-turbolinks"
6
+ end
7
+
8
+ require "rspec/core/rake_task"
9
+ RSpec::Core::RakeTask.new(:spec)
10
+ task default: :spec
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: active_admin_role
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Yoshiyuki Hirano
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-11-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activeadmin
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.0.pre4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0.pre4
27
+ - !ruby/object:Gem::Dependency
28
+ name: cancancan
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.15.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.15.0
41
+ description: Role based authorization with CanCanCan for Active Admin
42
+ email:
43
+ - yhirano@me.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".gitignore"
49
+ - ".rspec"
50
+ - ".rubocop.yml"
51
+ - ".ruby-style.yml"
52
+ - ".travis.yml"
53
+ - Appraisals
54
+ - Gemfile
55
+ - LICENSE.txt
56
+ - README.md
57
+ - Rakefile
58
+ - active_admin_role.gemspec
59
+ - app/models/active_admin/managed_resource.rb
60
+ - app/models/active_admin/permission.rb
61
+ - config/locales/en.yml
62
+ - config/locales/ja.yml
63
+ - gemfiles/.bundle/config
64
+ - gemfiles/rails42.gemfile
65
+ - gemfiles/rails50.gemfile
66
+ - lib/active_admin_role.rb
67
+ - lib/active_admin_role/active_admin/dsl.rb
68
+ - lib/active_admin_role/active_admin/resource_controller.rb
69
+ - lib/active_admin_role/can_can/ability.rb
70
+ - lib/active_admin_role/config.rb
71
+ - lib/active_admin_role/engine.rb
72
+ - lib/active_admin_role/manageable_resource.rb
73
+ - lib/active_admin_role/model.rb
74
+ - lib/active_admin_role/role_based_authorizable.rb
75
+ - lib/active_admin_role/version.rb
76
+ - lib/generators/active_admin_role/USAGE
77
+ - lib/generators/active_admin_role/helper.rb
78
+ - lib/generators/active_admin_role/install_generator.rb
79
+ - lib/generators/active_admin_role/templates/admin/permission.rb
80
+ - lib/generators/active_admin_role/templates/initializer.rb
81
+ - lib/generators/active_admin_role/templates/migration/add_role_to_admin_users.rb
82
+ - lib/generators/active_admin_role/templates/migration/create_active_admin_managed_resources.rb
83
+ - lib/generators/active_admin_role/templates/migration/create_active_admin_permissions.rb
84
+ - lib/generators/active_admin_role/templates/model/ability.rb
85
+ - tasks/test.rake
86
+ homepage: https://github.com/yhirano55/active_admin_role
87
+ licenses:
88
+ - MIT
89
+ metadata: {}
90
+ post_install_message:
91
+ rdoc_options: []
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 2.1.0
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ requirements: []
105
+ rubyforge_project:
106
+ rubygems_version: 2.5.2
107
+ signing_key:
108
+ specification_version: 4
109
+ summary: Role based authorization with CanCanCan for Active Admin
110
+ test_files: []