X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fadmin_api%2Fadmin_api_controller.ex;h=0cc84430d64bec10f067fac5bf8d94f895ec9d96;hb=578a9117370c3756c56448ad663664f73155a50b;hp=1618a83725bd1f37122b17d5e037d7a763476700;hpb=ee2e1328addb2b3a9f67eb47c983c63e496bc040;p=akkoma diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 1618a8372..0cc84430d 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -1,25 +1,84 @@ -defmodule Pleroma.Web.AdminAPI.Controller do +defmodule Pleroma.Web.AdminAPI.AdminAPIController do use Pleroma.Web, :controller + alias Pleroma.{User, Repo} + alias Pleroma.Web.ActivityPub.Relay require Logger action_fallback(:errors) - def user_delete(%{assigns: %{user: user}} = conn, _params) do + def user_delete(conn, %{nickname: nickname}) do + user = User.get_by_nickname(nickname) + + if user[:local] == true do + User.delete(user) + else + User.delete(user) + end + + conn + |> send(200) end - def user_create(%{assigns: %{user: user}} = conn, _params) do + def user_create( + conn, + %{user: %{nickname: nickname, email: email, password: password} = user} + ) do + new_user = %User{ + nickname: nickname, + name: user.name || nickname, + email: email, + password: password, + password_confirmation: password, + bio: user.bio || "." + } + + User.register_changeset(%User{}, new_user) + + Repo.insert!(user) + + conn + |> send(200) end - def relay_follow(%{assigns: %{user: user}} = conn, _params) do + def relay_follow(conn, %{relay_url: target}) do + :ok = Relay.follow(target) + + conn + |> send(200) end - def relay_unfollow(%{assigns: %{user: user}} = conn, _params) do + def relay_unfollow(conn, %{relay_url: target}) do + :ok = Relay.unfollow(target) + + conn + |> send(200) + end + + def get_invite_token(conn, _params) do + {:ok, token} <- Pleroma.UserInviteToken.create_token() + + conn + |> puts(token) + end + + def get_password_reset(conn, %{"nickname" => nickname}) do + (%User{local: true} = user) = User.get_by_nickname(nickname) + {:ok, token} = Pleroma.PasswordResetToken.create_token(user) + + conn + |> json(token.token) end - def user_delete(%{assigns: %{user: user}} = conn, _params) do + def errors(conn, {:param_cast, _}) do + conn + |> put_status(400) + |> json("Invalid parameters") end - def user_delete(%{assigns: %{user: user}} = conn, _params) do + def errors(conn, _) do + conn + |> put_status(500) + |> json("Something went wrong") end end