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
4c918392
Commit
4c918392
authored
Nov 18, 2018
by
lain
Browse files
Fix most User tests.
parent
e7cd6e97
Changes
4
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/formatter.ex
View file @
4c918392
...
...
@@ -116,8 +116,8 @@ def add_user_links({subs, text}, mentions) do
subs
++
Enum
.
map
(
mentions
,
fn
{
match
,
%
User
{
ap_id:
ap_id
,
info:
info
},
uuid
}
->
ap_id
=
if
is_binary
(
info
[
"
source_data
"
]
[
"url"
])
do
info
[
"
source_data
"
]
[
"url"
]
if
is_binary
(
info
.
source_data
[
"url"
])
do
info
.
source_data
[
"url"
]
else
ap_id
end
...
...
lib/pleroma/user.ex
View file @
4c918392
...
...
@@ -36,13 +36,13 @@ def avatar_url(user) do
end
def
banner_url
(
user
)
do
case
user
.
info
[
"
banner
"
]
do
case
user
.
info
.
banner
do
%{
"url"
=>
[%{
"href"
=>
href
}
|
_
]}
->
href
_
->
"
#{
Web
.
base_url
()
}
/images/banner.png"
end
end
def
profile_url
(%
User
{
info:
%{
"
source_data
"
=>
%{
"url"
=>
url
}}}),
do
:
url
def
profile_url
(%
User
{
info:
%{
source_data
:
%{
"url"
=>
url
}}}),
do
:
url
def
profile_url
(%
User
{
ap_id:
ap_id
}),
do
:
ap_id
def
profile_url
(
_
),
do
:
nil
...
...
@@ -80,18 +80,24 @@ def user_info(%User{} = user) do
@email_regex
~r/^[a-zA-Z0-9.!#$%&'*+\/
=
?^
_
`
{
|
}
~
-
]
+
@
[
a
-
zA
-
Z0
-
9
](
?:
[
a
-
zA
-
Z0
-
9
-
]{
0
,
61
}[
a
-
zA
-
Z0
-
9
])
?(?:
\
.
[
a
-
zA
-
Z0
-
9
](
?:
[
a
-
zA
-
Z0
-
9
-
]{
0
,
61
}[
a
-
zA
-
Z0
-
9
])
?)
*
$
/
def
remote_user_creation
(
params
)
do
params
=
params
|>
Map
.
put
(
:info
,
params
[
:info
]
||
%{})
info_cng
=
User
.
Info
.
remote_user_creation
(%
User
.
Info
{},
params
[
:info
])
changes
=
%
User
{}
|>
cast
(
params
,
[
:bio
,
:name
,
:ap_id
,
:nickname
,
:info
,
:avatar
])
%
User
{
info:
%{}
}
|>
cast
(
params
,
[
:bio
,
:name
,
:ap_id
,
:nickname
,
:avatar
])
|>
validate_required
([
:name
,
:ap_id
])
|>
unique_constraint
(
:nickname
)
|>
validate_format
(
:nickname
,
@email_regex
)
|>
validate_length
(
:bio
,
max:
5000
)
|>
validate_length
(
:name
,
max:
100
)
|>
put_change
(
:local
,
false
)
|>
put_embed
(
:info
,
info_cng
)
if
changes
.
valid?
do
case
changes
.
changes
[
:
info
][
"
source_data
"
]
do
case
info_cng
.
changes
[
:source_data
]
do
%{
"followers"
=>
followers
}
->
changes
|>
put_change
(
:follower_address
,
followers
)
...
...
@@ -592,21 +598,23 @@ def blocks?(user, %{ap_id: ap_id}) do
end
def
block_domain
(
user
,
domain
)
do
domain_blocks
=
user
.
info
.
domain_blocks
new_blocks
=
Enum
.
uniq
([
domain
|
domain_blocks
])
new_info
=
Map
.
put
(
user
.
info
,
"domain_blocks"
,
new_blocks
)
info_cng
=
user
.
info
|>
User
.
Info
.
add_to_domain_block
(
domain
)
cs
=
User
.
info_changeset
(
user
,
%{
info:
new_info
})
update_and_set_cache
(
cs
)
cng
=
change
(
user
)
|>
put_embed
(
:info
,
info_cng
)
update_and_set_cache
(
cng
)
end
def
unblock_domain
(
user
,
domain
)
do
blocks
=
user
.
info
[
"domain_blocks"
]
||
[]
new_blocks
=
List
.
delete
(
blocks
,
domain
)
new_info
=
Map
.
put
(
user
.
info
,
"domain_blocks"
,
new_blocks
)
info_cng
=
user
.
info
|>
User
.
Info
.
remove_from_domain_block
(
domain
)
cs
=
User
.
info_changeset
(
user
,
%{
info:
new_info
})
update_and_set_cache
(
cs
)
cng
=
change
(
user
)
|>
put_embed
(
:info
,
info_cng
)
update_and_set_cache
(
cng
)
end
def
local_user_query
()
do
...
...
@@ -700,7 +708,7 @@ def get_or_create_instance_user do
user
else
changes
=
%
User
{}
%
User
{
info:
%{}
}
|>
cast
(%{},
[
:ap_id
,
:nickname
,
:local
])
|>
put_change
(
:ap_id
,
relay_uri
)
|>
put_change
(
:nickname
,
nil
)
...
...
@@ -745,13 +753,14 @@ def insert_or_update_user(data) do
data
=
data
|>
Map
.
put
(
:name
,
blank?
(
data
[
:name
])
||
data
[
:nickname
])
|>
Map
.
put
(
:info
,
data
[
:info
]
||
%{})
cs
=
User
.
remote_user_creation
(
data
)
Repo
.
insert
(
cs
,
on_conflict:
:replace_all
,
conflict_target:
:nickname
)
end
def
ap_enabled?
(%
User
{
local:
true
}),
do
:
true
def
ap_enabled?
(%
User
{
info:
info
}),
do
:
info
[
"
ap_enabled
"
]
def
ap_enabled?
(%
User
{
info:
info
}),
do
:
info
.
ap_enabled
def
ap_enabled?
(
_
),
do
:
false
def
get_or_fetch
(
uri_or_nickname
)
do
...
...
lib/pleroma/user/info.ex
View file @
4c918392
...
...
@@ -62,6 +62,22 @@ def remove_from_block(info, blocked) do
set_blocks
(
info
,
List
.
delete
(
info
.
blocks
,
blocked
))
end
def
set_domain_blocks
(
info
,
domain_blocks
)
do
params
=
%{
domain_blocks:
domain_blocks
}
info
|>
cast
(
params
,
[
:domain_blocks
])
|>
validate_required
([
:domain_blocks
])
end
def
add_to_domain_block
(
info
,
domain_blocked
)
do
set_domain_blocks
(
info
,
Enum
.
uniq
([
domain_blocked
|
info
.
domain_blocks
]))
end
def
remove_from_domain_block
(
info
,
domain_blocked
)
do
set_domain_blocks
(
info
,
List
.
delete
(
info
.
domain_blocks
,
domain_blocked
))
end
def
set_keys
(
info
,
keys
)
do
params
=
%{
keys:
keys
}
...
...
@@ -69,4 +85,9 @@ def set_keys(info, keys) do
|>
cast
(
params
,
[
:keys
])
|>
validate_required
([
:keys
])
end
def
remote_user_creation
(
info
,
params
)
do
info
|>
cast
(
params
,
[
:source_data
])
end
end
lib/pleroma/web/activity_pub/activity_pub.ex
View file @
4c918392
...
...
@@ -42,7 +42,7 @@ defp get_recipients(data) do
defp
check_actor_is_active
(
actor
)
do
if
not
is_nil
(
actor
)
do
with
user
<-
User
.
get_cached_by_ap_id
(
actor
),
false
<-
!!
user
.
info
[
"
deactivated
"
]
do
false
<-
user
.
info
.
deactivated
do
:ok
else
_e
->
:reject
...
...
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