开发者

Setting up a beta sign up with Devise

I have recently integrated the Devise authentication system into a rails test app. The test app simply contains a projects model/controller/view that sits behind the authentication.

I am now adding a beta invite system, so that only users who have received an invite from another user can join the site. I was implementing this system through the following: http://railscasts.com/episodes/124-beta-invitations.

The one problem I am having is that the beta invite requires me to add some logic to the user controller, which you cannot do through D开发者_高级运维evise. I am trying to create a new registrations controller using Users::RegistrationsController < Devise::RegistrationsController that will basically be the same as the Devise controller but allow me to add in some additional logic for the beta invite system.

I, however, cannot get this new controller to work (and I am also having trouble as to what I should include in this new controller). I have added the following to my routes file:

resources :registrations

resources :invitations

resources :projects

devise_for :users

devise_scope :user do

get 'users/sign_up/:invitation_token' => 'registrations#new'

end

What do I put in this new registrations controller to mimic the functionality of the original devise/registrations controller?


In your user model, add a validation where you check that the user's email is in a beta invite list.

This SO is very similar: Whitelisting with devise ... I added similar code there, it's relevant here:

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable #etc

  before_validation :beta_invited?

  def beta_invited?
    unless BetaInvite.exists?(:email=>email)
      errors.add :email, "is not on our beta list"  
    end
  end 

end
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜