diff --git a/biscuit/core/anonymizers.py b/biscuit/core/anonymizers.py new file mode 100644 index 0000000000000000000000000000000000000000..d881584bbcefcb2b35fe220d29b9c06559e89783 --- /dev/null +++ b/biscuit/core/anonymizers.py @@ -0,0 +1,23 @@ +from hattori.base import BaseAnonymizer, faker + +from .models import Person + + +class PersonAnonymizer(BaseAnonymizer): + model = Person + + attributes = [ + ('first_name', faker.first_name), + ('last_name', faker.last_name), + ('additional_name', ''), + ('short_name', lambda **kwargs: faker.pystr(min_chars=2, max_chars=4, **kwargs)), + ('street', faker.street_name), + ('housenumber', faker.building_number), + ('postal_code', faker.postalcode), + ('place', faker.city), + ('phone_number', faker.phone_number), + ('mobile_number', ''), + ('email', faker.email), + ('date_of_birth', lambda **kwargs: faker.date_of_birth(minimum_age=8, maximum_age=66, **kwargs)), + ('photo', '') + ] diff --git a/biscuit/core/settings.py b/biscuit/core/settings.py index 8f52d0733164333a70f5a70ea1d22967098c9fe7..72900c31913f8d8cc15268c5ffe1fd30c4668ca5 100644 --- a/biscuit/core/settings.py +++ b/biscuit/core/settings.py @@ -65,6 +65,7 @@ INSTALLED_APPS = [ 'debug_toolbar', 'contact_form', 'django_select2', + 'hattori', 'biscuit.core', 'impersonate', ] @@ -314,4 +315,6 @@ CRON_CLASSES = [ 'biscuit.core.cronjobs.Backup' ] +ANONYMIZE_ENABLED = _settings.get('maintenance.anonymisable', True) + _settings.populate_obj(sys.modules[__name__]) diff --git a/pyproject.toml b/pyproject.toml index 1b7d35d177763d9b844a62021b37d084478fbfe4..1e5126079389aa131d11ffb187f608ade4c915cb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,6 +46,7 @@ django-impersonate = "^1.4" python-memcached = "^1.59" django-dbbackup = "^3.2" django-cron = "^0.5.1" +django-hattori = "^0.2" [tool.poetry.extras] ldap = ["django-auth-ldap"]