deviseregistrationblacklist

How can I blacklist usernames with Devise?


I have Devise setup to allow login with email or username. With your username you can have a vanity URL like so: vanity.com/username. My User model thus has attr_accessible :username as well as attr_accessor :login.

To prevent usernames from colliding with future features, I want to implement a blacklist on certain usernames. You can see a nice example list in use by GitHub here.

I'm new to Devise and have searched the how-to's in their wiki to see if this use case or anything like it is covered there. It doesn't seem to be.

How can I blacklist certain usernames for registration in Devise?


Solution

  • There was an easier way to do this than having to modify Devise's controllers.

    In the User model all I had to do was:

    validates :username, :exclusion => %w(about blog ...)
    

    Way too simple.