Search code examples
ruby-on-railsauthenticationdevisewhitelist

Whitelisting with devise


I am using devise to manage user authentication in my rails app. Devise is really great for that.

However I have a special requirement for my application: A user must be whitelisted before he can register as a User.

So there is a admin which creates a list of allowed emails. A user registers with a email and if the email is in the whitelist table he will be registered. If however, the mail is not in the whitelist, the registration should be aborted with a message like "You are not yet invited".

Do you have an idea how that could be solved with devise?

Thanks in advance.


Solution

  • What you can do is create your own registrations controller and extend the device one like:

    class MyRegistrationController < Devise::RegistrationsController
      def create
        # do your checks
        super
      end
    end
    

    see: https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb And: https://github.com/plataformatec/devise/wiki/How-to:-Customize-routes-to-user-registration-pages

    Good luck!