diff options
author | lain <lain@soykaf.club> | 2020-06-02 14:14:23 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-06-02 14:14:23 +0000 |
commit | 879304dcd94c778b3cdaa2b82f69fccf2b37090c (patch) | |
tree | 324d8e0cfa1f73f5180af462ebb95cba0cc6c769 /priv | |
parent | 5da38c15cd9b1701d5ca52be1036f2865c9f884e (diff) | |
parent | 19f468c5bc230d6790b00aa87e509a07e709aaa7 (diff) | |
download | pleroma-879304dcd94c778b3cdaa2b82f69fccf2b37090c.tar.gz pleroma-879304dcd94c778b3cdaa2b82f69fccf2b37090c.zip |
Merge branch 'replies-domain-block' into 'develop'
Replies domain block
Closes #1650
See merge request pleroma/pleroma!2622
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 |