Skip to content

Instantly share code, notes, and snippets.

@anonfloppa
Created July 10, 2022 23:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonfloppa/e397d7a2dda084fdcb13548a13ebc829 to your computer and use it in GitHub Desktop.
Save anonfloppa/e397d7a2dda084fdcb13548a13ebc829 to your computer and use it in GitHub Desktop.
anonymize user data in matrix with triggers
# function to prevent saving the user ip
CREATE OR REPLACE FUNCTION delete_ip()
RETURNS trigger AS
$BODY$
BEGIN
NEW.ip = '127.0.0.1';
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
# function to anonymize a newly created device
CREATE OR REPLACE FUNCTION change_device_name()
RETURNS trigger AS
$BODY$
BEGIN
IF NEW.hidden <> 't' THEN
NEW.display_name = 'new anontier device';
END IF;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
# function to prevent saving the user agent in the database
CREATE OR REPLACE FUNCTION func_delete_user_agent()
RETURNS trigger AS
$BODY$
BEGIN
NEW.user_agent = '';
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
# trigger to prevent saving the user agent in the devices table
CREATE TRIGGER delete_user_agent_devices
BEFORE INSERT OR UPDATE ON devices
FOR EACH ROW EXECUTE PROCEDURE func_delete_user_agent();
# trigger to prevent saving the user agent in the user_ips table
CREATE TRIGGER delete_user_agent_user_ips
BEFORE INSERT OR UPDATE ON user_ips
FOR EACH ROW EXECUTE PROCEDURE func_delete_user_agent();
# trigger to change the name of a new device during insert
CREATE TRIGGER make_new_devices_anonymous
BEFORE INSERT ON devices
FOR EACH ROW EXECUTE PROCEDURE change_device_name();
# prevent saving the user ip in the devices table
CREATE TRIGGER delete_ip_devices
BEFORE INSERT OR UPDATE ON devices
FOR EACH ROW EXECUTE PROCEDURE delete_ip();
# prevent saving the user ip in the user_ips table
CREATE TRIGGER delete_ip_user_ips
BEFORE INSERT OR UPDATE ON user_ips
FOR EACH ROW EXECUTE PROCEDURE delete_ip();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment