Created
July 10, 2022 23:03
-
-
Save anonfloppa/e397d7a2dda084fdcb13548a13ebc829 to your computer and use it in GitHub Desktop.
anonymize user data in matrix with triggers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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