diff --git a/FAC/FAC_PACANO.SRC b/FAC/FAC_PACANO.SRC index d9cd0c95..49509aac 100644 --- a/FAC/FAC_PACANO.SRC +++ b/FAC/FAC_PACANO.SRC @@ -16,7 +16,7 @@ CREATE OR REPLACE PACKAGE ano AS FUNCTION postcode(postcode_veld IN VARCHAR2) RETURN VARCHAR2; FUNCTION telefoon(telefoon_veld IN VARCHAR2) RETURN VARCHAR2; FUNCTION adres(adres_veld IN VARCHAR2) RETURN VARCHAR2; - FUNCTION naam(naam_veld IN VARCHAR2, uniek IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2; + FUNCTION naam(naam_veld IN VARCHAR2, uniek IN NUMBER DEFAULT 0) RETURN VARCHAR2; FUNCTION email(email_veld IN VARCHAR2) RETURN VARCHAR2; FUNCTION memo(memo_veld IN VARCHAR2) RETURN VARCHAR2; END ano; @@ -514,7 +514,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS AND bez_afspraak_bedrijf <> 'Anoniem'; UPDATE prs_bedrijf - SET prs_bedrijf_naam = ano.naam(prs_bedrijf_naam, 'prs_bedrijf.prs_bedrijf_naam_upper') + SET prs_bedrijf_naam = ano.naam(prs_bedrijf_naam, 10) , prs_bedrijf_post_adres = ano.adres(prs_bedrijf_post_adres) , prs_bedrijf_post_postcode = ano.postcode(prs_bedrijf_post_postcode) , prs_bedrijf_bezoek_adres = ano.adres(prs_bedrijf_bezoek_adres) @@ -707,7 +707,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS RETURN email; END email; - FUNCTION naam(naam_veld IN VARCHAR2, uniek IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2 + FUNCTION naam(naam_veld IN VARCHAR2, uniek IN NUMBER DEFAULT 0) RETURN VARCHAR2 IS a NUMBER; c NUMBER := 1; @@ -719,27 +719,19 @@ CREATE OR REPLACE PACKAGE BODY ano AS BEGIN IF (naam_veld IS NOT NULL) THEN - WHILE (c > 0) - LOOP - a := LENGTH(naam_veld)-1; - IF (SUBSTR(naam_veld,LENGTH(naam_veld),1) = ')' AND INSTR(naam_veld,'(',-1) > 0) - THEN - v := DBMS_RANDOM.string('l',LENGTH(naam_veld) - INSTR(naam_veld,'(',-1) -1); - v := ' ('||SUBSTR(v,1,50)||')'; - a := LENGTH(naam_veld) - LENGTH(v) -1; - END IF; - i := SUBSTR(naam_veld,1,1); - naam := UPPER(i)||DBMS_RANDOM.string('l', a)||v; - - IF (uniek IS NOT NULL) - THEN - tb := substr(uniek,1, INSTR(uniek,'.')-1); - ex := 'SELECT count(*) FROM ' || tb || ' WHERE UPPER(' || uniek || ') = ''' || UPPER(naam) || ''''; - EXECUTE IMMEDIATE(ex) INTO c; - ELSE - c := 0; - END IF; - END LOOP; + a := LENGTH(naam_veld)-1; + IF (SUBSTR(naam_veld,LENGTH(naam_veld),1) = ')' AND INSTR(naam_veld,'(',-1) > 0) + THEN + v := DBMS_RANDOM.string('l',LENGTH(naam_veld) - INSTR(naam_veld,'(',-1) -1); + v := ' ('||SUBSTR(v,1,50)||')'; + a := LENGTH(naam_veld) - LENGTH(v) -1; + END IF; + IF (a < uniek AND uniek > 0) + THEN + a := uniek; + END IF; + i := SUBSTR(naam_veld,1,1); + naam := UPPER(i)||DBMS_RANDOM.string('l', a)||v; END IF; RETURN naam; END naam; diff --git a/_UTIL/anonymize.sql b/_UTIL/anonymize.sql index 177cd3fd..a97dc97d 100644 --- a/_UTIL/anonymize.sql +++ b/_UTIL/anonymize.sql @@ -20,106 +20,11 @@ BEGIN END; / --- Destructive obstrufication of personal data. -UPDATE prs_perslid - SET prs_perslid_naam = - INITCAP (DBMS_RANDOM.string ('l', LENGTH (prs_perslid_naam))) - WHERE prs_perslid_naam NOT LIKE 'INACTIEF:%' - AND prs_perslid_naam NOT LIKE 'Facilitor' - AND (prs_perslid_oslogin IS NULL OR SUBSTR(prs_perslid_oslogin, 1, 1) <> '_'); - -UPDATE prs_perslid - SET prs_perslid_voornaam = - INITCAP (DBMS_RANDOM.string ('l', LENGTH (prs_perslid_voornaam))) - WHERE prs_perslid_voornaam IS NOT NULL - AND (prs_perslid_oslogin IS NULL OR SUBSTR(prs_perslid_oslogin, 1, 1) <> '_'); - -UPDATE prs_perslid - SET prs_perslid_voorletters = - UPPER (DBMS_RANDOM.string ('l', LENGTH (prs_perslid_voorletters))) - WHERE prs_perslid_voorletters IS NOT NULL; - -UPDATE prs_perslid - SET prs_perslid_naam = - 'INACTIEF:' - || INITCAP ( - DBMS_RANDOM.string ('l', LENGTH (prs_perslid_naam) - 9)) - WHERE prs_perslid_naam LIKE 'INACTIEF:%'; - -UPDATE prs_perslid SET prs_perslid_email='E'||TO_CHAR(prs_perslid_key)||'@facilitor.nl' - WHERE prs_perslid_email IS NOT NULL; - -UPDATE prs_perslid SET prs_perslid_oslogin2='O'||TO_CHAR(prs_perslid_key) - WHERE prs_perslid_oslogin2 IS NOT NULL; - -UPDATE prs_perslid SET prs_perslid_wachtwoord_hash = null; - -UPDATE prs_perslid SET prs_perslid_apikey = 'TEST_' || DBMS_RANDOM.string('a', 10) - WHERE prs_perslid_apikey IS NOT NULL; - -DELETE FROM fac_imp_perslid; - -UPDATE prs_contactpersoon - SET prs_contactpersoon_naam = INITCAP (DBMS_RANDOM.string ('l', LENGTH(prs_contactpersoon_naam))); -UPDATE prs_contactpersoon - SET prs_contactpersoon_voornaam = INITCAP (DBMS_RANDOM.string ('l', LENGTH(prs_contactpersoon_voornaam))) - WHERE prs_contactpersoon_voornaam IS NOT NULL; -UPDATE prs_contactpersoon - SET prs_contactpersoon_voorletters = SUBSTR(prs_contactpersoon_voornaam,1,1)|| SUBSTR(prs_contactpersoon_voorletters,2) - WHERE prs_contactpersoon_voorletters IS NOT NULL; -UPDATE prs_contactpersoon SET prs_contactpersoon_email='anonymous@facilitor.nl' - WHERE prs_contactpersoon_email IS NOT NULL; - -ALTER TRIGGER bez_t_bez_afspraak_B_IU DISABLE; -UPDATE bez_afspraak - SET bez_afspraak_gastheer = (SELECT SUBSTR(prs_perslid_naam_full,1,50) FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key=bez_afspraak_host_key) - WHERE bez_afspraak_host_key IS NOT NULL; - -UPDATE bez_afspraak - SET bez_afspraak_gastheer = INITCAP (DBMS_RANDOM.string ('l', LENGTH (bez_afspraak_gastheer))) - WHERE bez_afspraak_host_key IS NULL; -ALTER TRIGGER bez_t_bez_afspraak_B_IU ENABLE; - -UPDATE bez_bezoekers - SET bez_afspraak_naam = UPPER(SUBSTR(bez_afspraak_naam,1,1))||'. Bezoeker' - WHERE bez_afspraak_naam IS NOT NULL - AND bez_afspraak_naam <> 'Anoniem'; - -UPDATE bez_bezoekers - SET bez_afspraak_bedrijf = UPPER(SUBSTR(bez_afspraak_bedrijf,1,1))||'areon B.V.' - WHERE bez_afspraak_bedrijf IS NOT NULL - AND bez_afspraak_bedrijf <> 'Anoniem'; - -UPDATE prs_bedrijf - SET prs_bedrijf_naam = ano.naam(prs_bedrijf_naam, 'prs_bedrijf.prs_bedrijf_naam_upper') - , prs_bedrijf_post_adres = ano.adres(prs_bedrijf_post_adres) - , prs_bedrijf_post_postcode = ano.postcode(prs_bedrijf_post_postcode) - , prs_bedrijf_bezoek_adres = ano.adres(prs_bedrijf_bezoek_adres) - , prs_bedrijf_bezoek_postcode = ano.postcode(prs_bedrijf_bezoek_postcode) - , prs_bedrijf_telefoon = ano.telefoon(prs_bedrijf_telefoon) - , prs_bedrijf_telefoon2 = ano.telefoon(prs_bedrijf_telefoon2) - , prs_bedrijf_fax = ano.telefoon(prs_bedrijf_fax) - , prs_bedrijf_email = ano.email(prs_bedrijf_email) - , prs_bedrijf_contact_persoon = ano.naam(prs_bedrijf_contact_persoon) - , prs_bedrijf_contact_telefoon = ano.telefoon(prs_bedrijf_contact_telefoon) - , prs_bedrijf_contact_fax = ano.telefoon(prs_bedrijf_contact_fax); - -UPDATE prs_bedrijfadres - SET prs_bedrijfadres_url = ano.email(prs_bedrijfadres_url) - , prs_bedrijfadres_username = ano.naam(prs_bedrijfadres_username) - , prs_bedrijfadres_password = NULL; - -DROP PACKAGE anoniem; - -UPDATE aut_idp - SET aut_idp_secret = 'TEST_' || DBMS_RANDOM.string('a', 10) - WHERE aut_idp_secret IS NOT NULL - AND aut_idp_internal = 0; - -UPDATE aut_sp - SET aut_sp_secret = 'TEST_' || DBMS_RANDOM.string('a', 10) - WHERE aut_sp_secret IS NOT NULL - AND aut_sp_internal = 0; +BEGIN + -- Destructive obstrufication of personal data. + ano.anonymizefull(); +END; +/ BEGIN adm.systrackscriptid('$Id$'); END; /