Giter Club home page Giter Club logo

active_admin_role's Introduction

ActiveAdminRole

CAUTION: Sorry, this gem is not maintained now. I'm looking for maintainer has motivation for apps using ActiveAdmin. Please somebody help me. See more

Role based authorization with CanCanCan for Active Admin

Installation

Add this line to your application's Gemfile:

gem 'active_admin_role'

And run bundle

Dependencies

  • rails (>= 5.0.0)
  • activeadmin (>= 1.2.0)
  • cancancan (>= 1.15.0)

Sample application

https://github.com/activeadmin-plugins/active_admin_role_sample

Usage

  1. Run this command after rails generate active_admin:install:
$ bin/rails generate active_admin_role:install
  create  config/initializers/active_admin_role.rb
  insert  app/models/admin_user.rb
  create  db/migrate/20161128090641_add_role_to_admin_users.rb
  create  db/migrate/20161128090642_create_active_admin_managed_resources.rb
  create  db/migrate/20161128090643_create_active_admin_permissions.rb
  create  app/models/ability.rb
    gsub  config/initializers/active_admin.rb
  create  app/admin/permissions.rb
  insert  app/admin/admin_users.rb

$ bin/rails db:migrate
  1. You have to login as admin after migration.

  2. You have to Reload permissions.

  1. Edit permissions however you like.

  1. Of course, you can edit AdminUser's roles.

Configuration

ActiveAdminRole.configure do |config|
  # [Required:Hash]
  # == Role | default: { guest: 0, support: 1, staff: 2, manager: 3, admin: 99 }
  config.roles = { guest: 0, support: 1, staff: 2, manager: 3, admin: 99 }

  # [Optional:Array]
  # == Special roles which don't need to manage on database
  config.super_user_roles = [:admin]
  config.guest_user_roles = [:guest]

  # [Optional:String]
  # == User class name | default: 'AdminUser'
  config.user_class_name = "AdminUser"

  # [Optional:Symbol]
  # == Default permission | default: :cannot
  config.default_state = :cannot
end

License

MIT License

active_admin_role's People

Contributors

alexey avatar dependabot-support avatar fivell avatar srgpqt avatar yhirano55 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

active_admin_role's Issues

undefined local variable or method `role_changeable' under Passenger

Using standard generated setup with bin/rails generate active_admin_role:install, I deployed my app on VDS with Nginx + Passenger.

Passenger cannot start the app and in /var/log/nginx/error.log I found following error:

[ E 2018-04-11 20:05:03.0202 10865/T8 age/Cor/Con/CheckoutSession.cpp:285 ]: [Client 1-6772] Cannot checkout session because a spawning error occurred. The identifier of the error is 85af6ced. Please see earlier logs for details about the error.
App 21291 stdout:
App 21291 stdout: ReactOnRails: Set generated_assets_dir to default: public/webpack/production
App 21291 stdout:
[ E 2018-04-11 20:05:31.8733 10865/Tgq age/Cor/App/Implementation.cpp:304 ]: Could not spawn process for application /var/www/communitymoscow/current: An error occurred while starting up the preloader.
Error ID: 6c609093
Error details saved to: /tmp/passenger-error-VtzAFS.html
Message from application: undefined local variable or method role_changeable' for #<ActiveAdmin::ResourceDSL:0x005556753024d0> (NameError) /var/www/communitymoscow/releases/20180411195635/app/admin/admin_users.rb:3:in block in <top (required)>'
/var/www/communitymoscow/shared/bundle/ruby/2.4.0/gems/activeadmin-1.2.1/lib/active_admin/dsl.rb:15:in `instance_exec'

ActiveAdmin version:

activeadmin (1.2.1)

ActiveAdminRole version:

active_admin_role (0.2.0)

Rails version:

gem 'rails', '~> 5.1.4'

Ruby version:

'2.4.1'

undefined method `delete' for :ok:Symbol

Steps to reproduce

screen shot 2018-11-02 at 2 01 34 pm
screen shot 2018-11-02 at 2 01 54 pm
Hi I am gettin the above error all of a sudden. My app was working fine. I have included the permisions code. The rest of the app is working. I could never edit my permissions however.

thank you

  • Explain steps to reproduce.
  • Paste your error logs.
  • Tell us your repository of app, if you ok.

ActiveAdmin version:2.0.0 alpha

ActiveAdminRole version:0.2.1

**Rails version 5.21

**Ruby version 2.5.3

Limited access to the dashboard

May I point to your installation procedure first ?
rails generate active_admin:install should read rails generate active_admin_role:install

It seems your app checks for installed files and finds a missing one:
The file [path_to]/app/admin/admin_user.rb does not appear to exist (in the console)
Actually, there has been a file named admin_users.rb installed.

When I log in as an admin, I just have access to the dashboard. All the tabs Users or Posts, etc are no longer active. As you understand, I have a users model in addition to the admin_users and this may cause a problem?

I have checked all the files in your sample application. Mine are just the same.

How can we check role for custom link ?

Steps to reproduce

I added new member function. The new permission is loaded. I appended the actions in registered active admin class. But it is not displayed according to permissions. I am unable to check the permission for that link. Or how to get the possible actions for resource class.

  • Explain steps to reproduce.
  • Paste your error logs.
  • Tell us your repository of app, if you ok.

Expected behavior

The appended link should display according to permission assigned.

Tell us what should happen
The custom link is displayed for all the roles.

ActiveAdmin version:2.13.1

ActiveAdminRole version: 0.2.2

Rails version:

Ruby version:

Maintainer wanted

I'm looking for maintainer of active_admin_role gem. Currently I don't use ActiveAdmin in any my projects, so I don't have motivations to maintain plugins any more. Please someone help me.

I'm ready to grant someone as maintainer and transfer gem management right to someone.

trouble adding admin users from inside the app

Hello, I have installed your gem and I have created admin roles by seeding the database, however, I am having trouble creating users from the active_admin menu now. How you encounter this issue? Or is this just something i am not doing in my code?

Batch action of admin user view not displaying assign as staff and other default roles in Rails 7.

Steps to reproduce

  1. I have follow the active_admin_role documentation and add (gem 'active_admin_role').
  2. Run this command (rails generate active_admin:install).
  3. then rake db:migrate
  4. after running migration i got permissions tab in my admin dashboard.
  5. Click Reload button in permissions tab and its create all permissions for me.
  6. Go back to the Admin user Index page and select a admin user in the listing and then click on batch action.
  7. Batch action drop-down only shows delete selected option and i'm expecting assign a staff selected and other options according to the existing roles.

active_admin

ActiveAdmin version: activeadmin (>= 1.2.0)

ActiveAdminRole version: active_admin_role (0.2.2)

Rails version: 7.0.4

Ruby version: 3.1.0

config/initializers/active_admin_role.rb :-

ActiveAdminRole.configure do |config|

config.roles = { guest: 0, support: 1, staff: 2, manager: 3, admin: 99 }

config.super_user_roles = [:admin]
config.guest_user_roles = [:guest]

config.user_class_name = "AdminUser"

config.default_state = :cannot
end

config/initializers/active_admin.rb :-

ActiveAdmin.setup do |config|

config.site_title = 'Project'

config.site_title_image = 'logo.png'

meta_tags_options = { viewport: 'width=device-width, initial-scale=1' }
config.meta_tags = meta_tags_options
config.meta_tags_for_logged_out_pages = meta_tags_options

config.authentication_method = :authenticate_admin_user!

CanCanAdapter or make your own. Please refer to documentation.

config.authorization_adapter = ActiveAdmin::CanCanAdapter

You can customize your CanCan Ability class name here.

config.cancan_ability_class = "Ability"

config.current_user_method = :current_admin_user

Default:

config.logout_link_path = :destroy_admin_user_session_path

config.comments = false

config.batch_actions = true

config.filter_attributes = %i[encrypted_password password password_confirmation]

config.localize_format = :long

ability.rb

class Ability
include CanCan::Ability
include ActiveAdminRole::CanCan::Ability

def initialize(user)
user ||= AdminUser.new

if user.super_user?
  can :manage, :all
else
  register_role_based_abilities(user)
end

# NOTE: Everyone can read the page of Permission Deny
can :read, ActiveAdmin::Page, name: 'Dashboard'

end
end

active_admin_role can not work on rails (~> 7.0.0) was resolved to 7.0.0

HI team, could you help update the activeadmin_role .

when bundle add active_admin_role in rails project, got some errors as below:

D:\RUBY\mojo> bundle add active_admin_role
Fetching gem metadata from https://rubygems.org/............
Resolving dependencies...
Bundler could not find compatible versions for gem "rails":
  In snapshot (Gemfile.lock):
    rails (= 7.0.0)

  In Gemfile:
    rails (~> 7.0.0)

    active_admin_role was resolved to 0.1.1, which depends on
      activeadmin (>= 1.0.0.pre4) was resolved to 1.0.0.pre4, which depends on
        rails (< 5.1, >= 3.2)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "railties":
  In snapshot (Gemfile.lock):
    railties (= 7.0.0)

  In Gemfile:
    active_admin_role was resolved to 0.1.1, which depends on
      activeadmin (>= 1.0.0.pre4) was resolved to 1.0.0.pre5, which depends on
        railties (< 5.1, >= 3.2)

    rails (~> 7.0.0) was resolved to 7.0.0, which depends on
      railties (= 7.0.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

uninitialized constant ActiveAdminRole::Dsl (NameError)

Hello, I need your kind support

I am working on rails 7.0.5, after I install this gem and when I run bin/rails generate active_admin_role: install I got the following error

C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/active_admin_role-0.2.2/lib/active_admin_role/engine.rb:8:in `block (2 levels) in class:Engine': uninitialized constant ActiveAdminRole::Dsl (NameError)

    extend ActiveAdminRole::Dsl
                          ^^^^^
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/activesupport-7.0.5/lib/active_support/lazy_load_hooks.rb:95:in `class_eval'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/activesupport-7.0.5/lib/active_support/lazy_load_hooks.rb:95:in `block in execute_hook'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/activesupport-7.0.5/lib/active_support/lazy_load_hooks.rb:85:in `with_execution_control'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/activesupport-7.0.5/lib/active_support/lazy_load_hooks.rb:90:in `execute_hook'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/activesupport-7.0.5/lib/active_support/lazy_load_hooks.rb:60:in `block in on_load'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/activesupport-7.0.5/lib/active_support/lazy_load_hooks.rb:59:in `each'  
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/activesupport-7.0.5/lib/active_support/lazy_load_hooks.rb:59:in `on_load'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/active_admin_role-0.2.2/lib/active_admin_role/engine.rb:7:in `block in <class:Engine>'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/initializable.rb:32:in `instance_exec'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/initializable.rb:32:in `run'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/initializable.rb:61:in `block in run_initializers'
    from C:/Ruby31-x64/lib/ruby/3.1.0/tsort.rb:228:in `block in tsort_each'
    from C:/Ruby31-x64/lib/ruby/3.1.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
    from C:/Ruby31-x64/lib/ruby/3.1.0/tsort.rb:431:in `each_strongly_connected_component_from'
    from C:/Ruby31-x64/lib/ruby/3.1.0/tsort.rb:349:in `block in each_strongly_connected_component'
    from C:/Ruby31-x64/lib/ruby/3.1.0/tsort.rb:347:in `each'
    from C:/Ruby31-x64/lib/ruby/3.1.0/tsort.rb:347:in `call'
    from C:/Ruby31-x64/lib/ruby/3.1.0/tsort.rb:347:in `each_strongly_connected_component'
    from C:/Ruby31-x64/lib/ruby/3.1.0/tsort.rb:226:in `tsort_each'
    from C:/Ruby31-x64/lib/ruby/3.1.0/tsort.rb:205:in `tsort_each'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/initializable.rb:60:in `run_initializers'      
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/application.rb:372:in `initialize!'
    from B:/Mircovers/Microvers/All Projects/JobSearch/side project/blog_post/config/environment.rb:5:in `<main>'       
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/zeitwerk-2.6.8/lib/zeitwerk/kernel.rb:38:in `require'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/application.rb:348:in `require_environment!'   
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/command/actions.rb:28:in `require_environment!'        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/command/actions.rb:15:in `require_application_and_environment!'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/commands/generate/generate_command.rb:21:in `perform'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/command/base.rb:87:in `perform'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/command.rb:48:in `invoke'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/railties-7.0.5/lib/rails/commands.rb:18:in `<main>'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
    from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
    from bin/rails:4:in `<main>'

Batch Actions for Updating Users

I have been receiving the following error when I try to update a batch of user's role to another type of role. See the full trace below. I am not using Devise, but I do have a current_user method.

NameError in Admin::UsersController#batch_action

undefined local variable or method `current_admin_user' for #<Admin::UsersController:0x007f367a0b1d20> Did you mean? current_user

active_admin_role (0.1.0) lib/active_admin_role/active_admin/dsl.rb:11:in `block (2 levels) in role_changeable'
activeadmin (1.1.0) lib/active_admin/batch_actions/controller.rb:12:in `instance_exec'
activeadmin (1.1.0) lib/active_admin/batch_actions/controller.rb:12:in `batch_action'
actionpack (5.1.4) lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
actionpack (5.1.4) lib/abstract_controller/base.rb:186:in `process_action'
actionpack (5.1.4) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (5.1.4) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (5.1.4) lib/active_support/callbacks.rb:131:in `run_callbacks'
actionpack (5.1.4) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (5.1.4) lib/action_controller/metal/rescue.rb:20:in `process_action'
actionpack (5.1.4) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (5.1.4) lib/active_support/notifications.rb:166:in `block in instrument'
activesupport (5.1.4) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activesupport (5.1.4) lib/active_support/notifications.rb:166:in `instrument'
actionpack (5.1.4) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (5.1.4) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'
activerecord (5.1.4) lib/active_record/railties/controller_runtime.rb:22:in `process_action'
actionpack (5.1.4) lib/abstract_controller/base.rb:124:in `process'
actionview (5.1.4) lib/action_view/rendering.rb:30:in `process'
actionpack (5.1.4) lib/action_controller/metal.rb:189:in `dispatch'
actionpack (5.1.4) lib/action_controller/metal.rb:253:in `dispatch'
actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:31:in `serve'
actionpack (5.1.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `each'
actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `serve'
actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:834:in `call'
rack (2.0.3) lib/rack/etag.rb:25:in `call'
rack (2.0.3) lib/rack/conditional_get.rb:38:in `call'
rack (2.0.3) lib/rack/head.rb:12:in `call'
rack (2.0.3) lib/rack/session/abstract/id.rb:232:in `context'
rack (2.0.3) lib/rack/session/abstract/id.rb:226:in `call'
actionpack (5.1.4) lib/action_dispatch/middleware/cookies.rb:613:in `call'
activerecord (5.1.4) lib/active_record/migration.rb:556:in `call'
actionpack (5.1.4) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'
activesupport (5.1.4) lib/active_support/callbacks.rb:97:in `run_callbacks'
actionpack (5.1.4) lib/action_dispatch/middleware/callbacks.rb:24:in `call'
actionpack (5.1.4) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.1.4) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
web-console (3.5.1) lib/web_console/middleware.rb:135:in `call_app'
web-console (3.5.1) lib/web_console/middleware.rb:28:in `block in call'
web-console (3.5.1) lib/web_console/middleware.rb:18:in `catch'
web-console (3.5.1) lib/web_console/middleware.rb:18:in `call'
actionpack (5.1.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.1.4) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.1.4) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.1.4) lib/active_support/tagged_logging.rb:69:in `block in tagged'
activesupport (5.1.4) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.1.4) lib/active_support/tagged_logging.rb:69:in `tagged'
railties (5.1.4) lib/rails/rack/logger.rb:24:in `call'
sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (5.1.4) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
actionpack (5.1.4) lib/action_dispatch/middleware/request_id.rb:25:in `call'
rack (2.0.3) lib/rack/method_override.rb:22:in `call'
rack (2.0.3) lib/rack/runtime.rb:22:in `call'
activesupport (5.1.4) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
actionpack (5.1.4) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.1.4) lib/action_dispatch/middleware/static.rb:125:in `call'
rack (2.0.3) lib/rack/sendfile.rb:111:in `call'
railties (5.1.4) lib/rails/engine.rb:522:in `call'
puma (3.10.0) lib/puma/configuration.rb:225:in `call'
puma (3.10.0) lib/puma/server.rb:605:in `handle_request'
puma (3.10.0) lib/puma/server.rb:437:in `process_client'
puma (3.10.0) lib/puma/server.rb:301:in `block in run'
puma (3.10.0) lib/puma/thread_pool.rb:120:in `block in spawn_thread'
Request

Parameters:

{"utf8"=>"โœ“",
 "authenticity_token"=>"7ILEa/AoYVfkg9Czu3nmyfdljZ+qg00huRV8AQ9+pVjg1A/o/rR9VFQXGQih1aeLErTnJTNHH4tfNeM/IL+Zcg==",
 "batch_action"=>"assign_as_super_admin",
 "collection_selection_toggle_all"=>"on",
 "collection_selection"=>["2", "1"]}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.