badges: Add a GDPR SAR script for Badges
Signed-off-by: Sayan Chowdhury <sayan.chowdhury2012@gmail.com>
This commit is contained in:
parent
a4991341c9
commit
6715f6ce19
4 changed files with 109 additions and 1 deletions
|
@ -8,3 +8,8 @@ volgroup: /dev/vg_guests
|
||||||
eth0_ip: 10.5.126.100
|
eth0_ip: 10.5.126.100
|
||||||
vmhost: virthost19.phx2.fedoraproject.org
|
vmhost: virthost19.phx2.fedoraproject.org
|
||||||
datacenter: phx2
|
datacenter: phx2
|
||||||
|
|
||||||
|
# GDPR SAR variables
|
||||||
|
sar_script: /usr/local/bin/get-sar-person-details
|
||||||
|
sar_script_user: fedmsg
|
||||||
|
sar_output_file: badges.json
|
||||||
|
|
|
@ -40,6 +40,7 @@ retrace01.qa.fedoraproject.org
|
||||||
retrace02.qa.fedoraproject.org
|
retrace02.qa.fedoraproject.org
|
||||||
|
|
||||||
[sar]
|
[sar]
|
||||||
|
badges-backend01.phx2.fedoraproject.org
|
||||||
bodhi-backend02.phx2.fedoraproject.org
|
bodhi-backend02.phx2.fedoraproject.org
|
||||||
mailman01.phx2.fedoraproject.org
|
mailman01.phx2.fedoraproject.org
|
||||||
|
|
||||||
|
|
91
roles/badges/backend/files/get-sar-person-details
Normal file
91
roles/badges/backend/files/get-sar-person-details
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
""" This is a CLI script for getting all the details of a person
|
||||||
|
"""
|
||||||
|
|
||||||
|
import __main__
|
||||||
|
__main__.__requires__ = __requires__ = ["tahrir-api", "sqlalchemy>=0.7"]
|
||||||
|
import pkg_resources
|
||||||
|
pkg_resources.require(__requires__)
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from tahrir_api.dbapi import TahrirDatabase
|
||||||
|
|
||||||
|
import fedmsg
|
||||||
|
import fedmsg.config
|
||||||
|
|
||||||
|
import fedbadges.utils
|
||||||
|
|
||||||
|
|
||||||
|
def parse_args():
|
||||||
|
parser = argparse.ArgumentParser(__doc__)
|
||||||
|
parser.add_argument('--person', default=None, help="A person FAS username")
|
||||||
|
args = parser.parser_args()
|
||||||
|
return args
|
||||||
|
|
||||||
|
|
||||||
|
def initialize():
|
||||||
|
fm_config = fedmsg.config.load_config()
|
||||||
|
fm_config['cert_prefix'] = 'fedbadges'
|
||||||
|
fm_config['name'] = 'relay_inbound'
|
||||||
|
fm_config['active'] = True
|
||||||
|
fedmsg.init(**fm_config)
|
||||||
|
uri = fm_config['badges_global']['database_uri']
|
||||||
|
tahrir = TahrirDatabase(
|
||||||
|
uri,
|
||||||
|
notification_callback=fedbadges.utils.notification_callback,
|
||||||
|
)
|
||||||
|
return tahrir
|
||||||
|
|
||||||
|
|
||||||
|
def main(tahrir, nickname):
|
||||||
|
payload = {}
|
||||||
|
person = tahrir.get_person(nickname=nickname)
|
||||||
|
|
||||||
|
if not person:
|
||||||
|
print 'No such person %r' % nickname
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
'id': person.id,
|
||||||
|
'nickname': nickname,
|
||||||
|
'email': person.email,
|
||||||
|
'website': person.website,
|
||||||
|
'bio': person.bio,
|
||||||
|
'created_on': person.created_on,
|
||||||
|
'last_login': person.last_login,
|
||||||
|
'opt_out': person.opt_out,
|
||||||
|
'rank': person.rank,
|
||||||
|
'assertions': []
|
||||||
|
}
|
||||||
|
|
||||||
|
assertions = tahrir.get_assertions_by_email(person.email)
|
||||||
|
|
||||||
|
if assertions:
|
||||||
|
assertion_list = []
|
||||||
|
for assertion in assertions:
|
||||||
|
assertion_list.append({
|
||||||
|
'badge_id': assertion.badge_id,
|
||||||
|
'issued_on': assertion.issued_on
|
||||||
|
})
|
||||||
|
|
||||||
|
payload['assertions'] = assertion_list
|
||||||
|
|
||||||
|
print json.dumps(payload)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
args = parse_args()
|
||||||
|
if not args.person:
|
||||||
|
nickname = os.environ['BADGE_USER']
|
||||||
|
if nickname is None:
|
||||||
|
print "You must specify a person id."
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
nickname = args.person
|
||||||
|
|
||||||
|
tahrir = initialize()
|
||||||
|
main(tahrir, nickname)
|
|
@ -169,4 +169,15 @@
|
||||||
- badges
|
- badges
|
||||||
- badges/backend
|
- badges/backend
|
||||||
|
|
||||||
|
- name: copy get-sar-person-details
|
||||||
|
copy: >
|
||||||
|
src=get-sar-person-details
|
||||||
|
dest=/usr/local/bin/get-sar-person-details
|
||||||
|
owner=fedmsg
|
||||||
|
group=fedmsg
|
||||||
|
mode=700
|
||||||
|
tags:
|
||||||
|
- scripts
|
||||||
|
- badges
|
||||||
|
- badges/backend
|
||||||
|
- sar
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue