Skip to content
GitLab
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
45b7325b
Verified
Commit
45b7325b
authored
Jun 08, 2021
by
Alex Gleason
Browse files
Refactor skipped plugs into Pleroma.Web functions
Speeds up recompilation by reducing compile cycles
parent
d896e45f
Pipeline
#36506
passed with stages
in 6 minutes and 59 seconds
Changes
13
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web.ex
View file @
45b7325b
...
...
@@ -62,6 +62,14 @@ defp skip_plug(conn, plug_modules) do
)
end
defp
skip_auth
(
conn
,
_
)
do
skip_plug
(
conn
,
[
OAuthScopesPlug
,
EnsurePublicOrAuthenticatedPlug
])
end
defp
skip_public_check
(
conn
,
_
)
do
skip_plug
(
conn
,
EnsurePublicOrAuthenticatedPlug
)
end
# Executed just before actual controller action, invokes before-action hooks (callbacks)
defp
action
(
conn
,
params
)
do
with
%{
halted:
false
}
=
conn
<-
...
...
lib/pleroma/web/masto_fe_controller.ex
View file @
45b7325b
...
...
@@ -8,13 +8,12 @@ defmodule Pleroma.Web.MastoFEController do
alias
Pleroma
.
User
alias
Pleroma
.
Web
.
MastodonAPI
.
AuthController
alias
Pleroma
.
Web
.
OAuth
.
Token
alias
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
alias
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
plug
(
OAuthScopesPlug
,
%{
scopes:
[
"write:accounts"
]}
when
action
==
:put_settings
)
# Note: :index action handles attempt of unauthenticated access to private instance with redirect
plug
(
:skip_p
lug
,
EnsurePublicOrAuthenticatedPlug
when
action
==
:index
)
plug
(
:skip_p
ublic_check
when
action
==
:index
)
plug
(
OAuthScopesPlug
,
...
...
@@ -22,10 +21,7 @@ defmodule Pleroma.Web.MastoFEController do
when
action
==
:index
)
plug
(
:skip_plug
,
[
OAuthScopesPlug
,
EnsurePublicOrAuthenticatedPlug
]
when
action
==
:manifest
)
plug
(
:skip_auth
when
action
==
:manifest
)
@doc
"GET /web/*path"
def
index
(
conn
,
_params
)
do
...
...
lib/pleroma/web/mastodon_api/controllers/account_controller.ex
View file @
45b7325b
...
...
@@ -24,7 +24,6 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do
alias
Pleroma
.
Web
.
MastodonAPI
.
MastodonAPIController
alias
Pleroma
.
Web
.
MastodonAPI
.
StatusView
alias
Pleroma
.
Web
.
OAuth
.
OAuthController
alias
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
alias
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
alias
Pleroma
.
Web
.
Plugs
.
RateLimiter
alias
Pleroma
.
Web
.
TwitterAPI
.
TwitterAPI
...
...
@@ -32,9 +31,9 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do
plug
(
Pleroma
.
Web
.
ApiSpec
.
CastAndValidate
)
plug
(
:skip_
plug
,
[
OAuthScopesPlug
,
EnsurePublicOrAuthenticatedPlug
]
when
action
==
:create
)
plug
(
:skip_
auth
when
action
==
:create
)
plug
(
:skip_p
lug
,
EnsurePublicOrAuthenticatedPlug
when
action
in
[
:show
,
:statuses
])
plug
(
:skip_p
ublic_check
when
action
in
[
:show
,
:statuses
])
plug
(
OAuthScopesPlug
,
...
...
lib/pleroma/web/mastodon_api/controllers/app_controller.ex
View file @
45b7325b
...
...
@@ -14,16 +14,10 @@ defmodule Pleroma.Web.MastodonAPI.AppController do
alias
Pleroma
.
Web
.
OAuth
.
App
alias
Pleroma
.
Web
.
OAuth
.
Scopes
alias
Pleroma
.
Web
.
OAuth
.
Token
alias
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
alias
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
action_fallback
(
Pleroma
.
Web
.
MastodonAPI
.
FallbackController
)
plug
(
:skip_plug
,
[
OAuthScopesPlug
,
EnsurePublicOrAuthenticatedPlug
]
when
action
in
[
:create
,
:verify_credentials
]
)
plug
(
:skip_auth
when
action
in
[
:create
,
:verify_credentials
])
plug
(
Pleroma
.
Web
.
ApiSpec
.
CastAndValidate
)
...
...
lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex
View file @
45b7325b
...
...
@@ -7,11 +7,7 @@ defmodule Pleroma.Web.MastodonAPI.CustomEmojiController do
plug
(
Pleroma
.
Web
.
ApiSpec
.
CastAndValidate
)
plug
(
:skip_plug
,
[
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
,
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
]
when
action
==
:index
)
plug
(
:skip_auth
when
action
==
:index
)
defdelegate
open_api_operation
(
action
),
to:
Pleroma
.
Web
.
ApiSpec
.
CustomEmojiOperation
...
...
lib/pleroma/web/mastodon_api/controllers/instance_controller.ex
View file @
45b7325b
...
...
@@ -7,11 +7,7 @@ defmodule Pleroma.Web.MastodonAPI.InstanceController do
plug
(
Pleroma
.
Web
.
ApiSpec
.
CastAndValidate
)
plug
(
:skip_plug
,
[
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
,
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
]
when
action
in
[
:show
,
:peers
]
)
plug
(
:skip_auth
when
action
in
[
:show
,
:peers
])
defdelegate
open_api_operation
(
action
),
to:
Pleroma
.
Web
.
ApiSpec
.
InstanceOperation
...
...
lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex
View file @
45b7325b
...
...
@@ -15,11 +15,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
require
Logger
plug
(
:skip_plug
,
[
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
,
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
]
when
action
in
[
:empty_array
,
:empty_object
]
)
plug
(
:skip_auth
when
action
in
[
:empty_array
,
:empty_object
])
action_fallback
(
Pleroma
.
Web
.
MastodonAPI
.
FallbackController
)
...
...
lib/pleroma/web/mastodon_api/controllers/status_controller.ex
View file @
45b7325b
...
...
@@ -27,10 +27,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
plug
(
Pleroma
.
Web
.
ApiSpec
.
CastAndValidate
)
plug
(
:skip_plug
,
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
when
action
in
[
:index
,
:show
]
)
plug
(
:skip_public_check
when
action
in
[
:index
,
:show
])
@unauthenticated_access
%{
fallback:
:proceed_unauthenticated
,
scopes:
[]}
...
...
lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex
View file @
45b7325b
...
...
@@ -12,12 +12,11 @@ defmodule Pleroma.Web.MastodonAPI.TimelineController do
alias
Pleroma
.
Pagination
alias
Pleroma
.
User
alias
Pleroma
.
Web
.
ActivityPub
.
ActivityPub
alias
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
alias
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
alias
Pleroma
.
Web
.
Plugs
.
RateLimiter
plug
(
Pleroma
.
Web
.
ApiSpec
.
CastAndValidate
)
plug
(
:skip_p
lug
,
EnsurePublicOrAuthenticatedPlug
when
action
in
[
:public
,
:hashtag
])
plug
(
:skip_p
ublic_check
when
action
in
[
:public
,
:hashtag
])
# TODO: Replace with a macro when there is a Phoenix release with the following commit in it:
# https://github.com/phoenixframework/phoenix/commit/2e8c63c01fec4dde5467dbbbf9705ff9e780735e
...
...
lib/pleroma/web/o_auth/o_auth_controller.ex
View file @
45b7325b
...
...
@@ -32,10 +32,7 @@ defmodule Pleroma.Web.OAuth.OAuthController do
plug
(
:fetch_session
)
plug
(
:fetch_flash
)
plug
(
:skip_plug
,
[
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
,
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
])
plug
(
:skip_auth
)
plug
(
RateLimiter
,
[
name:
:authentication
]
when
action
==
:create_authorization
)
...
...
lib/pleroma/web/pleroma_api/controllers/account_controller.ex
View file @
45b7325b
...
...
@@ -11,7 +11,6 @@ defmodule Pleroma.Web.PleromaAPI.AccountController do
alias
Pleroma
.
User
alias
Pleroma
.
Web
.
ActivityPub
.
ActivityPub
alias
Pleroma
.
Web
.
MastodonAPI
.
StatusView
alias
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
alias
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
alias
Pleroma
.
Web
.
Plugs
.
RateLimiter
...
...
@@ -29,10 +28,7 @@ defmodule Pleroma.Web.PleromaAPI.AccountController do
plug
(
Pleroma
.
Web
.
ApiSpec
.
CastAndValidate
)
plug
(
:skip_plug
,
[
OAuthScopesPlug
,
EnsurePublicOrAuthenticatedPlug
]
when
action
==
:confirmation_resend
)
plug
(
:skip_auth
when
action
==
:confirmation_resend
)
plug
(
OAuthScopesPlug
,
...
...
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex
View file @
45b7325b
...
...
@@ -22,11 +22,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
]
)
@skip_plugs
[
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
,
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
]
plug
(
:skip_plug
,
@skip_plugs
when
action
in
[
:index
,
:archive
,
:show
])
plug
(
:skip_auth
when
action
in
[
:index
,
:archive
,
:show
])
defdelegate
open_api_operation
(
action
),
to:
Pleroma
.
Web
.
ApiSpec
.
PleromaEmojiPackOperation
...
...
lib/pleroma/web/twitter_api/controller.ex
View file @
45b7325b
...
...
@@ -7,17 +7,12 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
alias
Pleroma
.
User
alias
Pleroma
.
Web
.
OAuth
.
Token
alias
Pleroma
.
Web
.
Plugs
.
EnsurePublicOrAuthenticatedPlug
alias
Pleroma
.
Web
.
Plugs
.
OAuthScopesPlug
alias
Pleroma
.
Web
.
TwitterAPI
.
TokenView
require
Logger
plug
(
:skip_plug
,
[
OAuthScopesPlug
,
EnsurePublicOrAuthenticatedPlug
]
when
action
==
:confirm_email
)
plug
(
:skip_auth
when
action
==
:confirm_email
)
plug
(
:skip_plug
,
OAuthScopesPlug
when
action
in
[
:oauth_tokens
,
:revoke_token
])
action_fallback
(
:errors
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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