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
40d9d209
Commit
40d9d209
authored
Nov 18, 2018
by
lain
Browse files
Fix user updating from AP.
parent
cafa1513
Pipeline
#4580
failed with stages
in 7 minutes and 9 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/user.ex
View file @
40d9d209
...
...
@@ -128,12 +128,17 @@ def upgrade_changeset(struct, params \\ %{}) do
params
|>
Map
.
put
(
:last_refreshed_at
,
NaiveDateTime
.
utc_now
())
info_cng
=
struct
.
info
|>
User
.
Info
.
user_upgrade
(
params
[
:info
])
struct
|>
cast
(
params
,
[
:bio
,
:name
,
:info
,
:follower_address
,
:avatar
,
:last_refreshed_at
])
|>
cast
(
params
,
[
:bio
,
:name
,
:follower_address
,
:avatar
,
:last_refreshed_at
])
|>
unique_constraint
(
:nickname
)
|>
validate_format
(
:nickname
,
~r/^[a-zA-Z\d]+$/
)
|>
validate_length
(
:bio
,
max:
5000
)
|>
validate_length
(
:name
,
max:
100
)
|>
put_embed
(
:info
,
info_cng
)
end
def
password_update_changeset
(
struct
,
params
)
do
...
...
lib/pleroma/user/info.ex
View file @
40d9d209
...
...
@@ -90,4 +90,10 @@ def remote_user_creation(info, params) do
info
|>
cast
(
params
,
[
:source_data
])
end
# Receives data from user_data_from_user_object
def
user_upgrade
(
info
,
params
)
do
info
|>
cast
(
params
,
[
:ap_enabled
,
:source_data
,
:banner
,
:locked
])
end
end
lib/pleroma/web/activity_pub/transmogrifier.ex
View file @
40d9d209
...
...
@@ -850,10 +850,6 @@ defp user_upgrade_task(user) do
def
upgrade_user_from_ap_id
(
ap_id
,
async
\\
true
)
do
with
%
User
{
local:
false
}
=
user
<-
User
.
get_by_ap_id
(
ap_id
),
{
:ok
,
data
}
<-
ActivityPub
.
fetch_and_prepare_user_from_ap_id
(
ap_id
)
do
data
=
data
|>
Map
.
put
(
:info
,
Map
.
merge
(
user
.
info
,
data
[
:info
]))
already_ap
=
User
.
ap_enabled?
(
user
)
{
:ok
,
user
}
=
...
...
test/user_test.exs
View file @
40d9d209
...
...
@@ -185,12 +185,14 @@ test "updates an existing user, if stale" do
local:
false
,
nickname:
"admin@mastodon.example.org"
,
ap_id:
"http://mastodon.example.org/users/admin"
,
last_refreshed_at:
a_week_ago
last_refreshed_at:
a_week_ago
,
info:
%{}
)
assert
orig_user
.
last_refreshed_at
==
a_week_ago
user
=
User
.
get_or_fetch_by_ap_id
(
"http://mastodon.example.org/users/admin"
)
assert
user
.
info
.
source_data
[
"endpoints"
]
refute
user
.
last_refreshed_at
==
orig_user
.
last_refreshed_at
end
...
...
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