Merge pull request #1078 from GSA/all_users_command

Generate a way to export all Notify.gov user contact information
This commit is contained in:
Carlo Costino
2024-07-03 16:14:34 -04:00
committed by GitHub
2 changed files with 20 additions and 1 deletions

View File

@@ -4,7 +4,7 @@ from secrets import randbelow
import sqlalchemy
from flask import current_app
from sqlalchemy import func
from sqlalchemy import func, text
from sqlalchemy.orm import joinedload
from app import db
@@ -244,3 +244,15 @@ def user_can_be_archived(user):
return False
return True
def dao_report_users():
sql = """
select users.name, users.email_address, users.mobile_number, services.name as service_name
from users
inner join user_to_service on users.id=user_to_service.user_id
inner join services on services.id=user_to_service.service_id
where services.name not like '_archived%'
order by services.name asc, users.name asc
"""
return db.session.execute(text(sql))

View File

@@ -18,6 +18,7 @@ from app.dao.users_dao import (
create_secret_code,
create_user_code,
dao_archive_user,
dao_report_users,
get_login_gov_user,
get_user_and_accounts,
get_user_by_email,
@@ -667,6 +668,12 @@ def update_password(user_id):
return jsonify(data=user.serialize()), 200
@user_blueprint.route("/report-all-users", methods=["GET"])
def report_all_users():
users = dao_report_users()
return jsonify(data=users.serialize()), 200
@user_blueprint.route("/<uuid:user_id>/organizations-and-services", methods=["GET"])
def get_organizations_and_services_for_user(user_id):
user = get_user_and_accounts(user_id)