Momentan müssen meine Benutzer ihr Passwort eingeben, um ihre E-Mail-Adresse oder ihr Passwort zu ändern, aber sie können ihr Konto löschen, ohne es eingeben zu müssen. Ich bin mir nicht sicher, wie ich das verlangen soll.Ruby on rails -Devise - Passwort zum Löschen des Kontos erforderlich
Bisher habe ich:
Benutzer-Controller:
def destroy
@user = User.find(current_user.id)
@user.destroy_with_password(user_params)
if @user.destroy
redirect_to root_url, notice: "User deleted."
else
redirect_to users_url
flash[:notice] = "Couldn't delete"
end
end
def user_params
params.require(:user).permit(:username, :email, :password,
:password_confirmation, :current_password, :avatar, etc....etc....)
end
A Form:
<%= simple_form_for(@user, :method => :delete) do |f| %>
<%= f.input :current_password, autocomplete: "off" %>
<%= f.button :submit %>
<% end %>
Hier kann der Benutzer löscht, auch wenn kein Passwort eingegeben wird. Die Löschanforderung wird von der richtigen Controller-Aktion verarbeitet.
Processing by UsersController#destroy as HTML
Processing by UsersController#destroy as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"bla bla bla", "user"=>{"current_password"=>"[FILTERED]"}, "commit"=>"Update User", "locale"=>"en", "id"=>"ce2dc2edc"}
SQL (0.1ms) DELETE FROM "users" WHERE "users"."id" = $1 [["id", 15]]
Wie kann ich das Benutzerpasswort anfordern, um das Konto zu löschen?
Für Leute, die nicht wissen @ @ user.destroy_with_password (current_password) ' – aks