Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F162765
ensure_user_token_assigns_plug.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
ensure_user_token_assigns_plug.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Web.Plugs.EnsureUserTokenAssignsPlug
do
import
Plug.Conn
alias
Pleroma.Helpers.AuthHelper
alias
Pleroma.User
alias
Pleroma.Web.OAuth.Token
@moduledoc
"Ensures presence and consistency of :user and :token assigns."
def
init
(
opts
)
do
opts
end
def
call
(%{
assigns
:
%{
user
:
%
User
{
id
:
user_id
}}
=
assigns
}
=
conn
,
_
)
do
with
%
Token
{
user_id
:
^
user_id
}
<-
assigns
[
:token
]
do
conn
else
%
Token
{}
->
# A safety net for abnormal (unexpected) scenario: :token belongs to another user
AuthHelper
.
drop_auth_info
(
conn
)
_
->
assign
(
conn
,
:token
,
nil
)
end
end
# App-bound token case (obtained with client_id and client_secret)
def
call
(%{
assigns
:
%{
token
:
%
Token
{
user_id
:
nil
}}}
=
conn
,
_
)
do
assign
(
conn
,
:user
,
nil
)
end
def
call
(
conn
,
_
)
do
conn
|>
assign
(
:user
,
nil
)
|>
assign
(
:token
,
nil
)
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Fri, Feb 21, 6:01 PM (13 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
66842
Default Alt Text
ensure_user_token_assigns_plug.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment