oauth: add me property to token responses
authorWilliam Pitcock <nenolod@dereferenced.org>
Sat, 16 Mar 2019 01:12:50 +0000 (01:12 +0000)
committerWilliam Pitcock <nenolod@dereferenced.org>
Sat, 16 Mar 2019 01:12:50 +0000 (01:12 +0000)
lib/pleroma/web/oauth/oauth_controller.ex
test/web/oauth/oauth_controller_test.exs

index ec70b7ccc9379482510a4919cd5e2e30b55be1b8..a2c876627aa8da475b4a82c1532d796a8fab001f 100644 (file)
@@ -105,6 +105,7 @@ defmodule Pleroma.Web.OAuth.OAuthController do
          fixed_token = fix_padding(params["code"]),
          %Authorization{} = auth <-
            Repo.get_by(Authorization, token: fixed_token, app_id: app.id),
+         %User{} = user <- Repo.get(User, auth.user_id),
          {:ok, token} <- Token.exchange_token(app, auth),
          {:ok, inserted_at} <- DateTime.from_naive(token.inserted_at, "Etc/UTC") do
       response = %{
@@ -113,7 +114,8 @@ defmodule Pleroma.Web.OAuth.OAuthController do
         refresh_token: token.refresh_token,
         created_at: DateTime.to_unix(inserted_at),
         expires_in: 60 * 10,
-        scope: Enum.join(token.scopes, " ")
+        scope: Enum.join(token.scopes, " "),
+        me: user.ap_id
       }
 
       json(conn, response)
@@ -142,7 +144,8 @@ defmodule Pleroma.Web.OAuth.OAuthController do
         access_token: token.token,
         refresh_token: token.refresh_token,
         expires_in: 60 * 10,
-        scope: Enum.join(token.scopes, " ")
+        scope: Enum.join(token.scopes, " "),
+        me: user.ap_id
       }
 
       json(conn, response)
index ed94416ff1a7d50f0d856431a9127b9f6ca1fc80..ff1e56fe9d3e02c419889f2ec1c69bf96daeb84d 100644 (file)
@@ -132,11 +132,12 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do
         "client_secret" => app.client_secret
       })
 
-    assert %{"access_token" => token} = json_response(conn, 200)
+    assert %{"access_token" => token, "me" => ap_id} = json_response(conn, 200)
 
     token = Repo.get_by(Token, token: token)
     assert token
     assert token.scopes == auth.scopes
+    assert user.ap_id == ap_id
   end
 
   test "issues a token for `password` grant_type with valid credentials, with full permissions by default" do