tesis sistemas sistema recomendacion hacer como ruby-on-rails authentication devise whitelist

ruby-on-rails - sistemas - sistema de recomendacion tesis



Lista blanca con un dispositivo (3)

Estoy usando un dispositivo para administrar la autenticación de usuario en mi aplicación de rieles. Devise es realmente genial para eso.

Sin embargo, tengo un requisito especial para mi solicitud: un usuario debe ser incluido en una lista blanca antes de poder registrarse como usuario.

Entonces, hay un administrador que crea una lista de correos electrónicos permitidos. Un usuario se registra con un correo electrónico y si el correo electrónico está en la lista de la lista blanca, se registrará. Sin embargo, si el correo no está en la lista blanca, el registro debe abortarse con un mensaje como "Aún no estás invitado".

¿Tienes una idea de cómo podría resolverse con el dispositivo?

Gracias por adelantado.



Creé mi propio controlador como se sugiere:

class Users::RegistrationsController < Devise::RegistrationsController def create email = params[:user][:email] if Admin::Whitelist.find_by_email(email) != nil super else build_resource set_flash_message :error, "You are not permitted to sign up yet. If you have already payed your registration fee, try again later." render_with_scope :new end end end

Lo puse en la app/users/registrations_controller.rb . Luego tuve que copiar las vistas de registro del app/views/users/registrations en la app/views/users/registrations porque no se usaron las vistas predeterminadas.

Está funcionando ahora, gracias por tu ayuda


Solo usaría la validación del modelo. Supongo que tu clase de usuario tiene el método de diseño

class User < ActiveRecord::Base devise :database_authenticatable, :registerable #etc before_validation :whitelisted def whitelisted unless celebrityemail.include? email errors.add :email, "#{email} is not on our invitation list" end end end