gema - Ruby on rails: Diseña, ¿quieres agregar un código de invitación?
rails authentication (3)
1) Un atributo virtual generalmente necesita un setter además de un getter.
La forma más fácil es agregar
attr_accessor :invite_code
attr_accessible :invite_code # allow invite_code to be set via mass-assignment
# See comment by James, below.
al modelo de Usuario
2) Supongo que Devise quiere que el modelo de Usuario valide. Para que pueda detener la validación agregando
validates_each :invite_code, :on => :create do |record, attr, value|
record.errors.add attr, "Please enter correct invite code" unless
value && value == "12345"
end
NOTA: added: on =>: create ya que el invite_code solo es necesario para crear el nuevo usuario, no para actualizarlo.
Me gustaría agregar un requisito de invite_code para que los usuarios se registren. Es decir. Además de exigirles que especifiquen un combo de correo electrónico / contraseña, quiero un campo adicional: invite_code. Esta es una solución temporal para que los usuarios no deseados no puedan iniciar sesión durante un período alfa dado.
Estoy confundido ya que Devise no agrega controladores. Estoy familiarizado con el concepto de atributos virtuales, y me da la impresión de que podría agregar un: invite_code al modelo, y luego simplemente codificar un paso ahora donde dice que el código de invitación debe ser igual a 12345 o lo que sea por ahora.
¿Tiene sentido esto con la autenticación de diseño? ¿Y cómo voy acercándome a esto desde un enfoque de relajación adecuado?
Muchas gracias.
Pruebe esto: http://github.com/scambra/devise_invitable
Agrega soporte para idear el envío de invitaciones por correo electrónico (requiere ser autenticado) y acepta la invitación configurando la contraseña.
Funciona con Devise> = 4.0 Si desea usar el dispositivo 3.0.x, debe usar 1.2.1 o inferior. Si desea utilizar el dispositivo 3.1.x, debe usar 1.3.2 o inferior. Si desea usar el dispositivo> = 3.2, debe usar 1.6.1 o inferior ...
De acuerdo con los documentos, invitable te da control sobre quién llega a invitar a otros. La gente no puede distribuir invitaciones si hay una configuración "0" para invitation_limit
.
De los documentos:
invitation_limit: la cantidad de invitaciones que los usuarios pueden enviar. El valor predeterminado de nil significa que los usuarios pueden enviar tantas invitaciones como deseen, no hay límite para ningún usuario, no se usa la columna invitation_limit. Una configuración de 0 significa que no pueden enviar invitaciones. Una configuración n> 0 significa que pueden enviar n invitaciones. Puede cambiar la columna invitation_limit para algunos usuarios para que puedan enviar más o menos invitaciones, incluso con el invitation_limit = 0 global.