Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
b574d97c
Commit
b574d97c
authored
Feb 20, 2019
by
Ivan Tashkinov
Browse files
[
#468
] Added support for `push` OAuth scope (Mastodon 2.4+).
parent
6fe7acd5
Changes
3
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
View file @
b574d97c
...
...
@@ -1273,15 +1273,25 @@ def login(conn, _) do
defp
get_or_make_app
()
do
find_attrs
=
%{
client_name:
@local_mastodon_name
,
redirect_uris:
"."
}
scopes
=
[
"read"
,
"write"
,
"follow"
,
"push"
]
with
%
App
{}
=
app
<-
Repo
.
get_by
(
App
,
find_attrs
)
do
{
:ok
,
app
}
=
if
app
.
scopes
==
scopes
do
{
:ok
,
app
}
else
app
|>
Ecto
.
Changeset
.
change
(%{
scopes:
scopes
})
|>
Repo
.
update
()
end
{
:ok
,
app
}
else
_e
->
cs
=
App
.
register_changeset
(
%
App
{},
Map
.
put
(
find_attrs
,
:scopes
,
[
"read"
,
"write"
,
"follow"
]
)
Map
.
put
(
find_attrs
,
:scopes
,
scopes
)
)
Repo
.
insert
(
cs
)
...
...
lib/pleroma/web/router.ex
View file @
b574d97c
...
...
@@ -93,6 +93,10 @@ defmodule Pleroma.Web.Router do
plug
(
Pleroma
.
Plugs
.
OAuthScopesPlug
,
%{
scopes:
[
"follow"
]})
end
pipeline
:oauth_push
do
plug
(
Pleroma
.
Plugs
.
OAuthScopesPlug
,
%{
scopes:
[
"push"
]})
end
pipeline
:well_known
do
plug
(
:accepts
,
[
"json"
,
"jrd+json"
,
"xml"
,
"xrd+xml"
])
end
...
...
@@ -290,6 +294,10 @@ defmodule Pleroma.Web.Router do
post
(
"/domain_blocks"
,
MastodonAPIController
,
:block_domain
)
delete
(
"/domain_blocks"
,
MastodonAPIController
,
:unblock_domain
)
end
scope
[]
do
pipe_through
(
:oauth_push
)
post
(
"/push/subscription"
,
MastodonAPIController
,
:create_push_subscription
)
get
(
"/push/subscription"
,
MastodonAPIController
,
:get_push_subscription
)
...
...
test/support/factory.ex
View file @
b574d97c
...
...
@@ -214,7 +214,7 @@ def oauth_app_factory do
%
Pleroma
.
Web
.
OAuth
.
App
{
client_name:
"Some client"
,
redirect_uris:
"https://example.com/callback"
,
scopes:
[
"read"
,
"write"
,
"follow"
],
scopes:
[
"read"
,
"write"
,
"follow"
,
"push"
],
website:
"https://example.com"
,
client_id:
"aaabbb=="
,
client_secret:
"aaa;/&bbb"
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment