0
votes

devise (3.2.4) rails (3.2.17) and cancan (1.6.10)

Admin creates other users. So in RegistrationsController I have

before_filter :check_permissions, :only => [:new, :create]
skip_before_filter :require_no_authentication

def check_permissions
    authorize! :create, resource
end 

new and create actions as well.

I'm finding it difficult to follow confirmable and some through SO questions.

How to call generate_confirmation_token for the signed up user,and email the link using confirmation_url, should I use ConfirmationsController .

edit: Admin creates user with just name and email.

1

1 Answers

2
votes

In User model add confirmable

devise :confirmable

Generate migration by this command

rails g migration add_confirmable_to_devise

In migration file add this and run rake db:migrate

class AddConfirmableToDevise < ActiveRecord::Migration
  # Note: You can't use change, as User.update_all with fail in the down migration
  def self.up
    add_column :users, :confirmation_token, :string
    add_column :users, :confirmed_at, :datetime
    add_column :users, :confirmation_sent_at, :datetime
    # add_column :users, :unconfirmed_email, :string # Only if using reconfirmable
    add_index :users, :confirmation_token, :unique => true
    # User.reset_column_information # Need for some types of updates, but not for update_all.
    # To avoid a short time window between running the migration and updating all existing
    # users as confirmed, do the following
    User.update_all(:confirmed_at => Time.now)
    # All existing user accounts should be able to log in after this.
  end

  def self.down
    remove_columns :users, :confirmation_token, :confirmed_at, :confirmation_sent_at
    # remove_columns :users, :unconfirmed_email # Only if using reconfirmable
  end
end

On signup devise will automatically send confirmation email with instructions

Source - https://github.com/plataformatec/devise/wiki/How-To:-Add-:confirmable-to-Users