forked from shibao/cannery
add delete user function
This commit is contained in:
parent
d424a6631a
commit
8e4e3872f5
@ -244,6 +244,11 @@ defmodule Cannery.Accounts do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@spec delete_user!(User.t()) :: User.t()
|
||||||
|
def delete_user!(%User{} = user) do
|
||||||
|
user |> Repo.delete!()
|
||||||
|
end
|
||||||
|
|
||||||
## Session
|
## Session
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
@ -64,6 +64,20 @@ defmodule CanneryWeb.UserSettingsController do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def delete(conn, %{"id" => user_id}) do
|
||||||
|
if user_id == conn.assigns.current_user.id do
|
||||||
|
Accounts.delete_user!(conn.assigns.current_user)
|
||||||
|
|
||||||
|
conn
|
||||||
|
|> put_flash(:error, "Your account has been deleted")
|
||||||
|
|> redirect(to: Routes.home_path(conn, :index))
|
||||||
|
else
|
||||||
|
conn
|
||||||
|
|> put_flash(:error, "Unable to delete user")
|
||||||
|
|> redirect(to: Routes.user_settings_path(conn, :edit))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
defp assign_email_and_password_changesets(conn, _opts) do
|
defp assign_email_and_password_changesets(conn, _opts) do
|
||||||
user = conn.assigns.current_user
|
user = conn.assigns.current_user
|
||||||
|
|
||||||
|
@ -47,6 +47,7 @@ defmodule CanneryWeb.Router do
|
|||||||
|
|
||||||
get "/users/settings", UserSettingsController, :edit
|
get "/users/settings", UserSettingsController, :edit
|
||||||
put "/users/settings", UserSettingsController, :update
|
put "/users/settings", UserSettingsController, :update
|
||||||
|
delete "/users/settings/:id", UserSettingsController, :delete
|
||||||
get "/users/settings/confirm_email/:token", UserSettingsController, :confirm_email
|
get "/users/settings/confirm_email/:token", UserSettingsController, :confirm_email
|
||||||
|
|
||||||
live "/tags", TagLive.Index, :index
|
live "/tags", TagLive.Index, :index
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<div class="flex flex-col justify-center items-center space-y-4">
|
<div class="mb-8 flex flex-col justify-center items-center space-y-8">
|
||||||
<h1 class="title text-primary-500 text-xl">
|
<h1 class="title text-primary-500 text-xl">
|
||||||
Settings
|
Settings
|
||||||
</h1>
|
</h1>
|
||||||
@ -82,4 +82,8 @@
|
|||||||
|
|
||||||
<%= submit "Change password", class: "btn btn-primary" %>
|
<%= submit "Change password", class: "btn btn-primary" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
<%= link "Delete User", to: Routes.user_settings_path(@conn, :delete, @current_user),
|
||||||
|
method: :delete, class: "btn btn-alert",
|
||||||
|
data: [confirm: "Are you sure you want to delete your account?"] %>
|
||||||
</div>
|
</div>
|
Loading…
Reference in New Issue
Block a user