summaryrefslogtreecommitdiff
path: root/priv
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-06-02 14:14:23 +0000
committerlain <lain@soykaf.club>2020-06-02 14:14:23 +0000
commit879304dcd94c778b3cdaa2b82f69fccf2b37090c (patch)
tree324d8e0cfa1f73f5180af462ebb95cba0cc6c769 /priv
parent5da38c15cd9b1701d5ca52be1036f2865c9f884e (diff)
parent19f468c5bc230d6790b00aa87e509a07e709aaa7 (diff)
downloadpleroma-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.exs33
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