Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F41666716
20190109152453_add_visibility_function.exs
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
20190109152453_add_visibility_function.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.Repo.Migrations.AddVisibilityFunction
do
use
Ecto.Migration
@disable_ddl_transaction
true
def
up
do
definition
=
"""
create or replace function activity_visibility(actor varchar, recipients varchar[], data jsonb) returns varchar as $$
DECLARE
fa varchar;
public varchar := 'https://www.w3.org/ns/activitystreams
#
Public';
BEGIN
SELECT COALESCE(users.follower_address, '') into fa from users where users.ap_id = actor;
IF data->'to' ? public THEN
RETURN 'public';
ELSIF data->'cc' ? public THEN
RETURN 'unlisted';
ELSIF ARRAY[fa] && recipients THEN
RETURN 'private';
ELSIF not(ARRAY[fa, public] && recipients) THEN
RETURN 'direct';
ELSE
RETURN 'unknown';
END IF;
END;
$$ LANGUAGE plpgsql IMMUTABLE;
"""
execute
(
definition
)
create
(
index
(
:activities
,
[
"activity_visibility(actor, recipients, data)"
],
name
:
:activities_visibility_index
,
concurrently
:
true
)
)
end
def
down
do
drop_if_exists
(
index
(
:activities
,
[
"activity_visibility(actor, recipients, data)"
],
name
:
:activities_visibility_index
)
)
execute
(
"drop function if exists activity_visibility(actor varchar, recipients varchar[], data jsonb)"
)
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Sun, Feb 15, 5:45 AM (17 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1016659
Default Alt Text
20190109152453_add_visibility_function.exs (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment