1
0
mirror of https://gitlab.crans.org/bde/nk20-scripts synced 2025-06-30 18:11:14 +02:00

Compare commits

1 Commits

Author SHA1 Message Date
9fafa3b373 Merge branch 'better_anonymization' into 'master'
Draft: anonymize more data

See merge request bde/nk20-scripts!4
2023-07-13 21:56:04 +02:00
4 changed files with 11 additions and 27 deletions

1
.gitignore vendored
View File

@ -33,7 +33,6 @@ coverage
# Local data
secrets.py
*/.env_borg
*.log
# Virtualenv

View File

@ -1,4 +1,4 @@
# Copyright (C) 2018-2024 by BDE ENS Paris-Saclay
# Copyright (C) 2018-2021 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
from datetime import date
@ -10,7 +10,7 @@ from member.models import Club, Membership
class Command(BaseCommand):
help = "Get mailing list registrations from the last wei. " \
"Usage: manage.py extract_ml_registrations -t {events,art,sport} -l {fr, en} -y {0, 1, ...}. " \
"Usage: manage.py extract_ml_registrations -t {events,art,sport} -t {fr, en}. " \
"You can write this into a file with a pipe, then paste the document into your mail manager."
def add_arguments(self, parser):
@ -19,8 +19,6 @@ class Command(BaseCommand):
parser.add_argument('--lang', '-l', type=str, choices=['fr', 'en'], default='fr',
help='Select the registred users of the ML of the given language. Useful only for the '
'events mailing list.')
parser.add_argument('--years', '-y', type=int, default=0,
help='Select the cumulative registred users of a membership from years ago. 0 means the current users')
def handle(self, *args, **options):
# TODO: Improve the mailing list extraction system, and link it automatically with Mailman.
@ -30,12 +28,10 @@ class Command(BaseCommand):
return
if options["type"] == "members":
today_date = date.today()
selected_date = date(today_date.year - options["years"], today_date.month, today_date.day)
for membership in Membership.objects.filter(
club__name="BDE",
date_start__lte=today_date,
date_end__gte=selected_date,
date_start__lte=date.today(),
date_end__gte=date.today(),
).all():
self.stdout.write(membership.user.email)
return
@ -53,11 +49,8 @@ class Command(BaseCommand):
return
if options["type"] == "art":
nb=0
for user in User.objects.filter(profile__ml_art_registration=True).all():
self.stdout.write(user.email)
nb+=1
self.stdout.write(str(nb))
return
if options["type"] == "sport":

View File

@ -1,3 +0,0 @@
BORG_PASSPHRASE='CHANGE_ME'
BORG_REPO='USER@SERVER:PATH'
BACKUP_FILE='PATH'

View File

@ -1,14 +1,9 @@
#!/bin/bash
export $(cat .env_borg | xargs)
# Create temporary backups directory
mkdir -p /tmp/note-backups
# Backup database
sudo -u postgres pg_dump -F t note_db > $BACKUP_FILE
# Keep the last 30 backups
borg prune --keep-last 30
# Save backup
borg create --compression lz4 ::backup-{now} $BACKUP_FILE
[[ -d /tmp/note-backups ]] || mkdir /tmp/note-backups
date=$(date +%Y-%m-%d)
# Backup database and save it as tar archive
su postgres -c "pg_dump -F t note_db" | tee "/tmp/note-backups/$date.tar" > /dev/null
# Compress backup as gzip
gzip "/tmp/note-backups/$date.tar"
scp "/tmp/note-backups/$date.tar.gz" "club-bde@zamok.crans.org:backup/$date.tar.gz"