diff options
| author | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-05-20 17:45:06 +0300 |
|---|---|---|
| committer | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-06-01 21:17:32 +0300 |
| commit | 7e6ec778d965419ed4083428d4d39b2a689f7619 (patch) | |
| tree | 0db4676482ee411ded02ec298519332f540f4437 /priv | |
| parent | fa37bfff99b3d4277a14345cff4ccbbe93385e04 (diff) | |
| download | pleroma-7e6ec778d965419ed4083428d4d39b2a689f7619.tar.gz pleroma-7e6ec778d965419ed4083428d4d39b2a689f7619.zip | |
exclude replies on blocked domains
Diffstat (limited to 'priv')
| -rw-r--r-- | priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs b/priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs new file mode 100644 index 000000000..14e873125 --- /dev/null +++ b/priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs @@ -0,0 +1,33 @@ +defmodule Pleroma.Repo.Migrations.AddRecipientsContainBlockedDomainsFunction do + use Ecto.Migration + @disable_ddl_transaction true + + def up do + statement = """ + CREATE OR REPLACE FUNCTION recipients_contain_blocked_domains(recipients varchar[], blocked_domains varchar[]) RETURNS boolean AS $$ + DECLARE + recipient_domain varchar; + recipient varchar; + BEGIN + FOREACH recipient IN ARRAY recipients LOOP + recipient_domain = split_part(recipient, '/', 3)::varchar; + + IF recipient_domain = ANY(blocked_domains) THEN + RETURN TRUE; + END IF; + END LOOP; + + RETURN FALSE; + END; + $$ LANGUAGE plpgsql; + """ + + execute(statement) + end + + def down do + execute( + "drop function if exists recipients_contain_blocked_domains(recipients varchar[], blocked_domains varchar[])" + ) + end +end |
