Devise based authentication for AlchemyCMS
AlchemyCMS has no authentication in its core. So it is possible to bring your own authentication and use it to authorize users in AlchemyCMS. If you don't have your own authentication, you can use this gem.
Important
Starting with Alchemy CMS 9.0, alchemy-devise lives in the devise/ directory of the Alchemy CMS repository
and is released together with alchemy_cms using the same version.
Please open issues and pull requests there.
This repository only receives fixes for the 8.x versions on its stable branches.
Install
Just put the gem into your projects Gemfile.
# Gemfile
gem 'alchemy-devise'and run bundle install.
Then run the installer:
$ bin/rails g alchemy:devise:installUpgrading
After updating the gem, please run the installer again.
$ bundle update alchemy-devise
$ bin/rails g alchemy:devise:installDevise modules
Default Devise modules included in Alchemy::User model
:database_authenticatable:trackable:validatable:timeoutable:recoverable:rememberable
If you want to add additional modules into the Alchemy user class append them to Alchemy::Devise.config.devise_modules in an initializer in your app.
Register additional modules example
# config/initializers/alchemy.rb
Alchemy::Devise.config.devise_modules << :registerableUsing old encryption
If your app uses an old encryption that needs the +devise-encryptable+ gem you also need to load the devise module.
# config/initializers/alchemy.rb
Alchemy::Devise.config.devise_modules << :encryptableRole changes
Granting or revoking the admin role asks the admin performing the change to
confirm their own password, both when creating a user and when editing one.
Since admin is the only role that can manage users, every other role and
every other user attribute can be edited with a valid session alone.
Roles that need a password are configurable:
# config/initializers/alchemy.rb
Alchemy::Devise.config.privileged_user_roles << "editor"Set this to false to grant roles with a valid session alone:
# config/initializers/alchemy.rb
Alchemy::Devise.config.require_password_for_role_change = falseTesting
If you want to contribute (and you should ^_^), you need to run the tests locally on your machine.
Just follow these pretty rails standard way of testing projects:
1. Once to prepare the test suite:
Clone the repo to your local harddrive. Then
$ bundle install
$ rake alchemy:spec:prepare2. Run the tests with:
$ rspecOptional: Even shorter
$ rakeThat prepares the database and runs the Rspec task in one step.
Getting Help
- If you have bugs, please use the issue tracker on Github.
- For Q&A and general usage, please use the Slack
Resources
- Homepage: https://alchemy-cms.com
- Live-Demo: https://alchemy-demo.herokuapp.com (user: demo, password: demo123)
- API Documentation: https://www.rubydoc.info/github/AlchemyCMS/alchemy-devise
- Issue-Tracker: https://github.com/AlchemyCMS/alchemy-devise/issues
- Sourcecode: https://github.com/AlchemyCMS/alchemy-devise
- Slack: https://slackin.alchemy-cms.com