Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F5811074
moderation_log_test.exs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
8 KB
Referenced Files
None
Subscribers
None
moderation_log_test.exs
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.ModerationLogTest
do
alias
Pleroma.Activity
alias
Pleroma.ModerationLog
use
Pleroma.DataCase
,
async
:
true
import
Pleroma.Factory
describe
"user moderation"
do
setup
do
admin
=
insert
(
:user
,
is_admin
:
true
)
moderator
=
insert
(
:user
,
is_moderator
:
true
)
subject1
=
insert
(
:user
)
subject2
=
insert
(
:user
)
[
admin
:
admin
,
moderator
:
moderator
,
subject1
:
subject1
,
subject2
:
subject2
]
end
test
"logging user deletion by moderator"
,
%{
moderator
:
moderator
,
subject1
:
subject1
}
do
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
subject
:
[
subject1
],
action
:
"delete"
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
deleted users: @
#{
subject1
.
nickname
}
"
end
test
"logging user creation by moderator"
,
%{
moderator
:
moderator
,
subject1
:
subject1
,
subject2
:
subject2
}
do
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
subjects
:
[
subject1
,
subject2
],
action
:
"create"
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
created users: @
#{
subject1
.
nickname
}
, @
#{
subject2
.
nickname
}
"
end
test
"logging user follow by admin"
,
%{
admin
:
admin
,
subject1
:
subject1
,
subject2
:
subject2
}
do
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
admin
,
followed
:
subject1
,
follower
:
subject2
,
action
:
"follow"
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
admin
.
nickname
}
made @
#{
subject2
.
nickname
}
follow @
#{
subject1
.
nickname
}
"
end
test
"logging user unfollow by admin"
,
%{
admin
:
admin
,
subject1
:
subject1
,
subject2
:
subject2
}
do
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
admin
,
followed
:
subject1
,
follower
:
subject2
,
action
:
"unfollow"
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
admin
.
nickname
}
made @
#{
subject2
.
nickname
}
unfollow @
#{
subject1
.
nickname
}
"
end
test
"logging user tagged by admin"
,
%{
admin
:
admin
,
subject1
:
subject1
,
subject2
:
subject2
}
do
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
admin
,
nicknames
:
[
subject1
.
nickname
,
subject2
.
nickname
],
tags
:
[
"foo"
,
"bar"
],
action
:
"tag"
})
log
=
Repo
.
one
(
ModerationLog
)
users
=
[
subject1
.
nickname
,
subject2
.
nickname
]
|>
Enum
.
map
(
&
"@
#{
&1
}
"
)
|>
Enum
.
join
(
", "
)
tags
=
[
"foo"
,
"bar"
]
|>
Enum
.
join
(
", "
)
assert
log
.
data
[
"message"
]
==
"@
#{
admin
.
nickname
}
added tags:
#{
tags
}
to users:
#{
users
}
"
end
test
"logging user untagged by admin"
,
%{
admin
:
admin
,
subject1
:
subject1
,
subject2
:
subject2
}
do
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
admin
,
nicknames
:
[
subject1
.
nickname
,
subject2
.
nickname
],
tags
:
[
"foo"
,
"bar"
],
action
:
"untag"
})
log
=
Repo
.
one
(
ModerationLog
)
users
=
[
subject1
.
nickname
,
subject2
.
nickname
]
|>
Enum
.
map
(
&
"@
#{
&1
}
"
)
|>
Enum
.
join
(
", "
)
tags
=
[
"foo"
,
"bar"
]
|>
Enum
.
join
(
", "
)
assert
log
.
data
[
"message"
]
==
"@
#{
admin
.
nickname
}
removed tags:
#{
tags
}
from users:
#{
users
}
"
end
test
"logging user grant by moderator"
,
%{
moderator
:
moderator
,
subject1
:
subject1
}
do
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
subject
:
[
subject1
],
action
:
"grant"
,
permission
:
"moderator"
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
made @
#{
subject1
.
nickname
}
moderator"
end
test
"logging user revoke by moderator"
,
%{
moderator
:
moderator
,
subject1
:
subject1
}
do
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
subject
:
[
subject1
],
action
:
"revoke"
,
permission
:
"moderator"
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
revoked moderator role from @
#{
subject1
.
nickname
}
"
end
test
"logging relay follow"
,
%{
moderator
:
moderator
}
do
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
action
:
"relay_follow"
,
target
:
"https://example.org/relay"
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
followed relay: https://example.org/relay"
end
test
"logging relay unfollow"
,
%{
moderator
:
moderator
}
do
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
action
:
"relay_unfollow"
,
target
:
"https://example.org/relay"
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
unfollowed relay: https://example.org/relay"
end
test
"logging report update"
,
%{
moderator
:
moderator
}
do
user
=
insert
(
:user
)
report
=
%
Activity
{
id
:
"9m9I1F4p8ftrTP6QTI"
,
data
:
%{
"type"
=>
"Flag"
,
"state"
=>
"resolved"
,
"actor"
=>
user
.
ap_id
}
}
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
action
:
"report_update"
,
subject
:
report
,
subject_actor
:
user
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
updated report
#
#{
report
.
id
}
(on user @
#{
user
.
nickname
}
) with 'resolved' state"
end
test
"logging report response"
,
%{
moderator
:
moderator
}
do
user
=
insert
(
:user
)
report
=
%
Activity
{
id
:
"9m9I1F4p8ftrTP6QTI"
,
data
:
%{
"type"
=>
"Note"
,
"actor"
=>
user
.
ap_id
}
}
attrs
=
%{
actor
:
moderator
,
action
:
"report_note"
,
subject
:
report
,
text
:
"look at this"
}
{
:ok
,
log1
}
=
ModerationLog
.
insert_log
(
attrs
)
log
=
Repo
.
get
(
ModerationLog
,
log1
.
id
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
added note 'look at this' to report
#
#{
report
.
id
}
"
{
:ok
,
log2
}
=
ModerationLog
.
insert_log
(
Map
.
merge
(
attrs
,
%{
subject_actor
:
user
}))
log
=
Repo
.
get
(
ModerationLog
,
log2
.
id
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
added note 'look at this' to report
#
#{
report
.
id
}
on user @
#{
user
.
nickname
}
"
end
test
"logging status sensitivity update"
,
%{
moderator
:
moderator
}
do
note
=
insert
(
:note_activity
)
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
action
:
"status_update"
,
subject
:
note
,
sensitive
:
"true"
,
visibility
:
nil
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
updated status
#
#{
note
.
id
}
, set sensitive: 'true'"
end
test
"logging status visibility update"
,
%{
moderator
:
moderator
}
do
note
=
insert
(
:note_activity
)
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
action
:
"status_update"
,
subject
:
note
,
sensitive
:
nil
,
visibility
:
"private"
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
updated status
#
#{
note
.
id
}
, set visibility: 'private'"
end
test
"logging status sensitivity & visibility update"
,
%{
moderator
:
moderator
}
do
note
=
insert
(
:note_activity
)
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
action
:
"status_update"
,
subject
:
note
,
sensitive
:
"true"
,
visibility
:
"private"
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
updated status
#
#{
note
.
id
}
, set sensitive: 'true', visibility: 'private'"
end
test
"logging status deletion"
,
%{
moderator
:
moderator
}
do
note
=
insert
(
:note_activity
)
{
:ok
,
_
}
=
ModerationLog
.
insert_log
(%{
actor
:
moderator
,
action
:
"status_delete"
,
subject_id
:
note
.
id
})
log
=
Repo
.
one
(
ModerationLog
)
assert
log
.
data
[
"message"
]
==
"@
#{
moderator
.
nickname
}
deleted status
#
#{
note
.
id
}
"
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Aug 14, 3:29 AM (1 d, 16 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
259963
Default Alt Text
moderation_log_test.exs (8 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment