Add revoke token

This commit is contained in:
Maxim Filippov 2019-02-11 00:49:56 +03:00
commit 62a45bdc11
4 changed files with 37 additions and 4 deletions

View file

@ -53,9 +53,18 @@ defmodule Pleroma.Web.OAuth.Token do
|> Repo.delete_all()
end
def get_user_tokens(%User{id: user_id}) do
def delete_user_token(%User{id: user_id}, token_id) do
from(
t in Pleroma.Web.OAuth.Token,
where: t.user_id == ^user_id,
where: t.id == ^token_id
)
|> Repo.delete_all()
end
def get_user_tokens(%User{id: user_id}) do
from(
t in Token,
where: t.user_id == ^user_id
)
|> Repo.all()

View file

@ -391,6 +391,7 @@ defmodule Pleroma.Web.Router do
get("/externalprofile/show", TwitterAPI.Controller, :external_profile)
get("/oauth_tokens", TwitterAPI.Controller, :oauth_tokens)
delete("/oauth_tokens/:id", TwitterAPI.Controller, :revoke_token)
end
pipeline :ap_relay do

View file

@ -554,6 +554,12 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
end
end
def revoke_token(%{assigns: %{user: user}} = conn, %{"id" => id} = _params) do
Token.delete_user_token(user, id)
json_reply(conn, 201, "")
end
def blocks(%{assigns: %{user: user}} = conn, _params) do
with blocked_users <- User.blocked_users(user) do
conn