forked from AkkomaGang/akkoma
create_service_actor is now type Application
This is used for internal fetch and for relay. Both represent the instance and therefore are an aplication.
This commit is contained in:
parent
aeb68a0ad1
commit
b71db2f82d
4 changed files with 29 additions and 0 deletions
|
@ -38,6 +38,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
- Rich media will now hard-exit after 5 seconds, to prevent timeline hangs
|
- Rich media will now hard-exit after 5 seconds, to prevent timeline hangs
|
||||||
- HTTP Content Security Policy is now far more strict to prevent any potential XSS/CSS leakages
|
- HTTP Content Security Policy is now far more strict to prevent any potential XSS/CSS leakages
|
||||||
- Follow requests are now paginated, matches mastodon API spec, so use the Link header to paginate.
|
- Follow requests are now paginated, matches mastodon API spec, so use the Link header to paginate.
|
||||||
|
- `internal.fetch` and `relay` actors are now represented with the actor type `Application`
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- /api/v1/accounts/lookup will now respect restrict\_unauthenticated
|
- /api/v1/accounts/lookup will now respect restrict\_unauthenticated
|
||||||
|
|
|
@ -2000,6 +2000,7 @@ defp create_service_actor(uri, nickname) do
|
||||||
%User{
|
%User{
|
||||||
invisible: true,
|
invisible: true,
|
||||||
local: true,
|
local: true,
|
||||||
|
actor_type: "Application",
|
||||||
ap_id: uri,
|
ap_id: uri,
|
||||||
nickname: nickname,
|
nickname: nickname,
|
||||||
follower_address: uri <> "/followers"
|
follower_address: uri <> "/followers"
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
defmodule Pleroma.Repo.Migrations.InstanceActorsToActorTypeApplication do
|
||||||
|
use Ecto.Migration
|
||||||
|
|
||||||
|
def up do
|
||||||
|
execute("""
|
||||||
|
update users
|
||||||
|
set actor_type = 'Application'
|
||||||
|
where local
|
||||||
|
and (ap_id like '%/relay' or ap_id like '%/internal/fetch')
|
||||||
|
""")
|
||||||
|
end
|
||||||
|
|
||||||
|
def down do
|
||||||
|
execute("""
|
||||||
|
update users
|
||||||
|
set actor_type = 'Person'
|
||||||
|
where local
|
||||||
|
and (ap_id like '%/relay' or ap_id like '%/internal/fetch')
|
||||||
|
""")
|
||||||
|
end
|
||||||
|
end
|
|
@ -19,6 +19,12 @@ test "gets an actor for the relay" do
|
||||||
assert user.ap_id == "#{Pleroma.Web.Endpoint.url()}/relay"
|
assert user.ap_id == "#{Pleroma.Web.Endpoint.url()}/relay"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "relay actor is an application" do
|
||||||
|
# See <https://www.w3.org/TR/activitystreams-vocabulary/#dfn-application>
|
||||||
|
user = Relay.get_actor()
|
||||||
|
assert user.actor_type == "Application"
|
||||||
|
end
|
||||||
|
|
||||||
test "relay actor is invisible" do
|
test "relay actor is invisible" do
|
||||||
user = Relay.get_actor()
|
user = Relay.get_actor()
|
||||||
assert User.invisible?(user)
|
assert User.invisible?(user)
|
||||||
|
|
Loading…
Reference in a new issue