Ich habe ein einziges Gerät Benutzermodell. Eine Benutzerrolle kann sein: A, B oder admin.Rails, Benutzerrolle bei der Anmeldung mit Gerät mit versteckten Feldern
Wenn ich mich das erste Mal anmelde, möchte ich die Benutzerrolle basierend auf einer von zwei Schaltflächen festlegen - Button A oder Button B. Ich werde dann die Website basierend auf diesen Rollen anpassen.
Mein aktueller Versuch ist jede Taste (A oder B) Seiten mit versteckten Feldern mit devise Formen zu trennen zu verknüpfen, das entweder A oder B.
Derzeit erhalte ich unpermitted params gehört: Rolle in meinem Logs, wenn so tun. Heres meiner Nutzer entwickeln Controller:
class Users::RegistrationsController <
Devise::RegistrationsController
before_action :configure_sign_up_params, only: [:create]
before_action :configure_account_update_params, only: [:update]
protected
# If you have extra params to permit, append them to the sanitizer.
def configure_sign_up_params
devise_parameter_sanitizer.permit(:sign_up, keys: [:role])
end
# If you have extra params to permit, append them to the sanitizer.
def configure_account_update_params
devise_parameter_sanitizer.permit(:account_update, keys: [:role])
end
end
ich auch nicht sicher bin, ob diese Art und Weise eine Rolle bei der Einstellung in Bezug sicher ist, dass ein Bösewicht der Lage sein, meint ihre Rolle als Admin irgendwie diese Weise einzustellen.
Also ich vermute, es gibt einen sichereren oder einfacheren Weg, die Dinge hier zu tun.
Form - hat man für B-Feld versteckt und man hat A.
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<%= f.input :email %>
<%= f.input :password %>
<%= f.input :password_confirmation %>
<%= f.hidden_field :role, value: 'A' %>
<%= f.button :submit, "Sign up" %>
<% end %>
ich einige View-Code schreiben würde diese Frage ein wenig klarer machen :) Tut mir klingen wie es auf der Sicherheitsfront von fehlt, was dort bis jetzt. – SRack