Merge pull request #2311 from alphagov/update-gsi-email-addressess

Update gsi email addresses
This commit is contained in:
Chris Hill-Scott
2019-02-06 15:47:33 +00:00
committed by GitHub

View File

@@ -634,3 +634,30 @@ def update_jobs_archived_flag(start_date, end_date):
total_updated += result.rowcount
current_app.logger.info('Total archived jobs = {}'.format(total_updated))
@notify_command(name='update-emails-to-remove-gsi')
@click.option('-s', '--service_id', required=True, help="service id. Update all user.email_address to remove .gsi")
@statsd(namespace="tasks")
def update_emails_to_remove_gsi(service_id):
users_to_update = """SELECT u.id user_id, u.name, email_address, s.id, s.name
FROM users u
JOIN user_to_service us on (u.id = us.user_id)
JOIN services s on (s.id = us.service_id)
WHERE s.id = :service_id
AND u.email_address ilike ('%.gsi.gov.uk%')
"""
results = db.session.execute(users_to_update, {'service_id': service_id})
print("Updating {} users.".format(results.rowcount))
for user in results:
print('User with id {} updated'.format(user.user_id))
update_stmt = """
UPDATE users
SET email_address = replace(replace(email_address, '.gsi.gov.uk', '.gov.uk'), '.GSI.GOV.UK', '.GOV.UK'),
updated_at = now()
WHERE id = :user_id
"""
db.session.execute(update_stmt, {'user_id': str(user.user_id)})
db.session.commit()