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
1cd82551
Commit
1cd82551
authored
Dec 28, 2018
by
kaniini
Browse files
Merge branch 'fix/public-timeline-auth' into 'develop'
Fix Twitter timelines for private instances See merge request
!602
parents
e1de866f
d8cc96cb
Pipeline
#5801
passed with stages
in 5 minutes and 59 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/twitter_api/twitter_api_controller.ex
View file @
1cd82551
...
...
@@ -662,7 +662,7 @@ defp forbidden_json_reply(conn, error_message) do
json_reply
(
conn
,
403
,
json
)
end
def
only_if_public_instance
(
conn
=
%{
conn:
%{
assigns:
%{
user:
_u
ser
}}},
_
),
do
:
conn
def
only_if_public_instance
(%{
assigns:
%{
user:
%
U
ser
{
}}}
=
conn
,
_
),
do
:
conn
def
only_if_public_instance
(
conn
,
_
)
do
if
Keyword
.
get
(
Application
.
get_env
(
:pleroma
,
:instance
),
:public
)
do
...
...
test/web/twitter_api/twitter_api_controller_test.exs
View file @
1cd82551
...
...
@@ -112,6 +112,8 @@ test "with credentials", %{conn: conn, user: user} do
end
describe
"GET /statuses/public_timeline.json"
do
setup
[
:valid_user
]
test
"returns statuses"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
activities
=
ActivityBuilder
.
insert_list
(
30
,
%{},
%{
user:
user
})
...
...
@@ -145,14 +147,44 @@ test "returns 403 to unauthenticated request when the instance is not public", %
Application
.
put_env
(
:pleroma
,
:instance
,
instance
)
end
test
"returns 200 to authenticated request when the instance is not public"
,
%{
conn:
conn
,
user:
user
}
do
instance
=
Application
.
get_env
(
:pleroma
,
:instance
)
|>
Keyword
.
put
(
:public
,
false
)
Application
.
put_env
(
:pleroma
,
:instance
,
instance
)
conn
|>
with_credentials
(
user
.
nickname
,
"test"
)
|>
get
(
"/api/statuses/public_timeline.json"
)
|>
json_response
(
200
)
instance
=
Application
.
get_env
(
:pleroma
,
:instance
)
|>
Keyword
.
put
(
:public
,
true
)
Application
.
put_env
(
:pleroma
,
:instance
,
instance
)
end
test
"returns 200 to unauthenticated request when the instance is public"
,
%{
conn:
conn
}
do
conn
|>
get
(
"/api/statuses/public_timeline.json"
)
|>
json_response
(
200
)
end
test
"returns 200 to authenticated request when the instance is public"
,
%{
conn:
conn
,
user:
user
}
do
conn
|>
with_credentials
(
user
.
nickname
,
"test"
)
|>
get
(
"/api/statuses/public_timeline.json"
)
|>
json_response
(
200
)
end
end
describe
"GET /statuses/public_and_external_timeline.json"
do
setup
[
:valid_user
]
test
"returns 403 to unauthenticated request when the instance is not public"
,
%{
conn:
conn
}
do
instance
=
Application
.
get_env
(
:pleroma
,
:instance
)
...
...
@@ -171,11 +203,39 @@ test "returns 403 to unauthenticated request when the instance is not public", %
Application
.
put_env
(
:pleroma
,
:instance
,
instance
)
end
test
"returns 200 to authenticated request when the instance is not public"
,
%{
conn:
conn
,
user:
user
}
do
instance
=
Application
.
get_env
(
:pleroma
,
:instance
)
|>
Keyword
.
put
(
:public
,
false
)
Application
.
put_env
(
:pleroma
,
:instance
,
instance
)
conn
|>
with_credentials
(
user
.
nickname
,
"test"
)
|>
get
(
"/api/statuses/public_and_external_timeline.json"
)
|>
json_response
(
200
)
instance
=
Application
.
get_env
(
:pleroma
,
:instance
)
|>
Keyword
.
put
(
:public
,
true
)
Application
.
put_env
(
:pleroma
,
:instance
,
instance
)
end
test
"returns 200 to unauthenticated request when the instance is public"
,
%{
conn:
conn
}
do
conn
|>
get
(
"/api/statuses/public_and_external_timeline.json"
)
|>
json_response
(
200
)
end
test
"returns 200 to authenticated request when the instance is public"
,
%{
conn:
conn
,
user:
user
}
do
conn
|>
with_credentials
(
user
.
nickname
,
"test"
)
|>
get
(
"/api/statuses/public_and_external_timeline.json"
)
|>
json_response
(
200
)
end
end
describe
"GET /statuses/show/:id.json"
do
...
...
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