This is a solidus_devise_token_auth compatible fork of solidus_auth_devise.
Provides authentication services for Solidus, using the Devise gem.
Just add this line to your Gemfile
:
gem "solidus_auth_devise"
# For Solidus versions < 2.5
# gem 'deface'
Then, run bundle install
.
After that's done, you can install and run the necessary migrations, then seed the database:
bundle exec rake solidus_auth:install:migrations
bundle exec rake db:migrate
bundle exec rake db:seed
As part of running the above installation steps, you will be asked to set an admin email/password combination. The default values are admin@example.com
and test123
, respectively.
To enable Devise's Confirmable module, which will send the user an email with a link to confirm their account, you must do the following:
- Add this line to an initializer in your Rails project (typically
config/initializers/spree.rb
):
Spree::Auth::Config[:confirmable] = true
- Add a Devise initializer to your Rails project (typically
config/initializers/devise.rb
):
Devise.setup do |config|
# Required so users don't lose their carts when they need to confirm.
config.allow_unconfirmed_access_for = 1.days
# Fixes the bug where Confirmation errors result in a broken page.
config.router_name = :spree
# Add any other devise configurations here, as they will override the defaults provided by solidus_auth_devise.
end
If you are installing Solidus inside of a host application in which you want your own permission setup, you can do this using the register_ability
method.
First create your own CanCan Ability class following the CanCan documentation.
For example: app/models/super_abilities.rb
class SuperAbilities
include CanCan::Ability
def initialize user
if user.is? "Superman"
can :stop, Bullet
end
end
end
Then register your class in your spree initializer: config/initializers/spree.rb
Spree::Ability.register_ability(SuperAbilities)
Inside of your host application you can then use CanCan like you normally would.
<% if can? :stop Bullet %>
...
<% end %>
Run the following to automatically build a dummy app if necessary and run the tests:
bundle exec rake