In our application we have normal users. However, we want to be able to make invitations, to invite certain people. Note that an invitation is directly coupled to a user, as we want to be able to set certain settings for these users already. (We are mitigating clients from our old software to the new).
So:
invitation_token
, they should see a form where they can set a password for their account.What I am having trouble with, is how to enable the admin to create an user account, bypassing the normal password validation. It would be a horrible solution if a default password would need to be set, as this would create a severe security flaw.
How to create a new User in Devise without providing a password?
There are at least two ways to do what you want:
Method 1:
Overload Devise's password_required?
method
class User < ActiveRecord::Base attr_accessor :skip_password_validation # virtual attribute to skip password validation while saving protected def password_required? return false if skip_password_validation super end end
Usage:
@user.skip_password_validation = true @user.save
Method 2:
Disable validation with validate: false
option:
user.save(validate: false)
This will skip validation of all fields (not only password). In this case you should make sure that all other fields are valid.
...
But I advise you to not create users without password in your particular case. I would create some additional table (for example, invitations
) and store all required information including the fields that you want to be assigned to a user after confirmation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With