Bring in latest updates to comments from source PR branch

This commit is contained in:
Rachid Mrad 2023-12-11 17:22:51 -05:00
commit 270e910520
No known key found for this signature in database
GPG key ID: EF38E4CEC4A8F3CF
22 changed files with 1083 additions and 76 deletions

View file

@ -15,7 +15,7 @@ from epplibwrapper import (
commands,
)
API_BASE_PATH = "/api/v1/available/"
API_BASE_PATH = "/api/v1/available/?domain="
class AvailableViewTest(MockEppLib):

View file

@ -84,6 +84,7 @@ def available(request, domain=""):
Response is a JSON dictionary with the key "available" and value true or
false.
"""
domain = request.GET.get("domain", "")
DraftDomain = apps.get_model("registrar.DraftDomain")
# validate that the given domain could be a domain name and fail early if
# not.

View file

@ -0,0 +1,30 @@
import logging
from django.test import TestCase
from django.conf import settings
from djangooidc.oidc import Client
logger = logging.getLogger(__name__)
class OidcTest(TestCase):
def test_oidc_create_authn_request_with_acr_value(self):
"""Test that create_authn_request returns a redirect with an acr_value
when an acr_value is passed through session.
This test is only valid locally. On local, client can be initialized.
Client initialization does not work in pipeline, so test is useless in
pipeline. However, it will not fail in pipeline."""
try:
# Initialize provider using pyOICD
OP = getattr(settings, "OIDC_ACTIVE_PROVIDER")
CLIENT = Client(OP)
session = {"acr_value": "some_acr_value_maybe_ial2"}
response = CLIENT.create_authn_request(session)
self.assertEqual(response.status_code, 302)
self.assertIn("some_acr_value_maybe_ial2", response.url)
except Exception as err:
logger.warning(err)
logger.warning("Unable to configure OpenID Connect provider in pipeline. Cannot execute this test.")

View file

@ -84,9 +84,7 @@ class ViewsTest(TestCase):
def test_requires_step_up_auth(self, mock_client):
"""Invoke login_callback passing it a request when requires_step_up_auth returns True
and assert that session is updated and create_authn_request (mock) is called.
Possibly redundant with test_login_callback_no_step_up_auth"""
and assert that session is updated and create_authn_request (mock) is called."""
# Configure the mock to return an expected value for get_step_up_acr_value
mock_client.return_value.get_step_up_acr_value.return_value = "step_up_acr_value"
@ -101,7 +99,10 @@ class ViewsTest(TestCase):
) as mock_create_authn_request:
login_callback(request)
# Assert that get_step_up_acr_value was called and session was updated
# create_authn_request only gets called when requires_step_up_auth is True
# and it changes this acr_value in request.session
# Assert that acr_value is no longer empty string
self.assertNotEqual(request.session["acr_value"], "")
# And create_authn_request was called again
mock_create_authn_request.assert_called_once()
@ -122,9 +123,12 @@ class ViewsTest(TestCase):
) as mock_create_authn_request:
login_callback(request)
# Assert that get_step_up_acr_value was NOT called and session was NOT updated
# create_authn_request only gets called when requires_step_up_auth is True
# and it changes this acr_value in request.session
# Assert that acr_value is NOT updated by testing that it is still an empty string
self.assertEqual(request.session["acr_value"], "")
# create_authn_request was not called
# Assert create_authn_request was not called
mock_create_authn_request.assert_not_called()
@patch("djangooidc.views.authenticate")
@ -180,34 +184,3 @@ class ViewsTest(TestCase):
# assert
self.assertEqual(response.status_code, 302)
self.assertEqual(response.url, reverse("logout"))
class ViewsTestUnpatched(TestCase):
def setUp(self):
self.client = Client()
self.factory = RequestFactory()
def say_hi(*args):
return HttpResponse("Hi")
def user_info(*args):
return {
"sub": "TEST",
"email": "test@example.com",
"first_name": "Testy",
"last_name": "Tester",
"phone": "814564000",
}
def test_login_callback_requires_step_up_auth(self):
"""Walk through login_callback when requires_step_up_auth returns True
and assert that create_authn_request is returned."""
with patch("djangooidc.views.requires_step_up_auth", return_value=True), patch(
"djangooidc.views.Client.callback", return_value=self.user_info
), patch("djangooidc.views.Client.create_authn_request", side_effect=self.say_hi):
response = self.client.get(reverse("openid_login_callback"))
# assert
self.assertEqual(response.status_code, 200)
self.assertContains(response, "Hi")

View file

@ -108,7 +108,14 @@ def requires_step_up_auth(userinfo):
acr_value = userinfo.get("ial", "")
uuid = userinfo.get("sub", "")
email = userinfo.get("email", "")
return User.needs_identity_verification(email, uuid) and acr_value != step_up_acr_value
if acr_value != step_up_acr_value:
# The acr of this attempt is not at the highest level
# so check if the user needs the higher level
return User.needs_identity_verification(email, uuid)
else:
# This attempt already came back at the highest level
# so does not require step up
return False
def logout(request, next_page=None):

View file

@ -142,7 +142,7 @@ function _checkDomainAvailability(el) {
inlineToast(el.parentElement, el.id, ERROR, response.message);
}
}
fetchJSON(`available/${el.value}`, callback);
fetchJSON(`available/?domain=${el.value}`, callback);
}
/** Call the API to see if the domain is good. */

View file

@ -37,9 +37,9 @@ body {
@include typeset('sans', 'xl', 2);
color: color('primary-darker');
}
.usa-nav__primary {
margin-top: units(1);
margin-top:units(1);
}
.section--outlined {

View file

@ -73,7 +73,7 @@ urlpatterns = [
path("health/", views.health),
path("openid/", include("djangooidc.urls")),
path("register/", include((application_urls, APPLICATION_NAMESPACE))),
path("api/v1/available/<domain>", available, name="available"),
path("api/v1/available/", available, name="available"),
path("api/v1/get-report/current-federal", get_current_federal, name="get-current-federal"),
path("api/v1/get-report/current-full", get_current_full, name="get-current-full"),
path(

View file

@ -0,0 +1,771 @@
# Generated by Django 4.2.7 on 2023-11-29 22:32
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("registrar", "0053_create_groups_v05"),
]
operations = [
migrations.AlterField(
model_name="domainapplication",
name="federal_agency",
field=models.TextField(
blank=True,
choices=[
(
"Administrative Conference of the United States",
"Administrative Conference of the United States",
),
("Advisory Council on Historic Preservation", "Advisory Council on Historic Preservation"),
("American Battle Monuments Commission", "American Battle Monuments Commission"),
("AMTRAK", "AMTRAK"),
("Appalachian Regional Commission", "Appalachian Regional Commission"),
(
"Appraisal Subcommittee of the Federal Financial Institutions Examination Council",
"Appraisal Subcommittee of the Federal Financial Institutions Examination Council",
),
("Appraisal Subcommittee", "Appraisal Subcommittee"),
("Architect of the Capitol", "Architect of the Capitol"),
("Armed Forces Retirement Home", "Armed Forces Retirement Home"),
(
"Barry Goldwater Scholarship and Excellence in Education Foundation",
"Barry Goldwater Scholarship and Excellence in Education Foundation",
),
(
"Barry Goldwater Scholarship and Excellence in Education Program",
"Barry Goldwater Scholarship and Excellence in Education Program",
),
("Central Intelligence Agency", "Central Intelligence Agency"),
("Chemical Safety Board", "Chemical Safety Board"),
("Christopher Columbus Fellowship Foundation", "Christopher Columbus Fellowship Foundation"),
("Civil Rights Cold Case Records Review Board", "Civil Rights Cold Case Records Review Board"),
(
"Commission for the Preservation of America's Heritage Abroad",
"Commission for the Preservation of America's Heritage Abroad",
),
("Commission of Fine Arts", "Commission of Fine Arts"),
(
"Committee for Purchase From People Who Are Blind or Severely Disabled",
"Committee for Purchase From People Who Are Blind or Severely Disabled",
),
("Commodity Futures Trading Commission", "Commodity Futures Trading Commission"),
("Congressional Budget Office", "Congressional Budget Office"),
("Consumer Financial Protection Bureau", "Consumer Financial Protection Bureau"),
("Consumer Product Safety Commission", "Consumer Product Safety Commission"),
("Corporation for National & Community Service", "Corporation for National & Community Service"),
(
"Corporation for National and Community Service",
"Corporation for National and Community Service",
),
(
"Council of Inspectors General on Integrity and Efficiency",
"Council of Inspectors General on Integrity and Efficiency",
),
("Court Services and Offender Supervision", "Court Services and Offender Supervision"),
("Cyberspace Solarium Commission", "Cyberspace Solarium Commission"),
(
"DC Court Services and Offender Supervision Agency",
"DC Court Services and Offender Supervision Agency",
),
("DC Pre-trial Services", "DC Pre-trial Services"),
("Defense Nuclear Facilities Safety Board", "Defense Nuclear Facilities Safety Board"),
("Delta Regional Authority", "Delta Regional Authority"),
("Denali Commission", "Denali Commission"),
("Department of Agriculture", "Department of Agriculture"),
("Department of Commerce", "Department of Commerce"),
("Department of Defense", "Department of Defense"),
("Department of Education", "Department of Education"),
("Department of Energy", "Department of Energy"),
("Department of Health and Human Services", "Department of Health and Human Services"),
("Department of Homeland Security", "Department of Homeland Security"),
("Department of Housing and Urban Development", "Department of Housing and Urban Development"),
("Department of Justice", "Department of Justice"),
("Department of Labor", "Department of Labor"),
("Department of State", "Department of State"),
("Department of the Interior", "Department of the Interior"),
("Department of the Treasury", "Department of the Treasury"),
("Department of Transportation", "Department of Transportation"),
("Department of Veterans Affairs", "Department of Veterans Affairs"),
("Director of National Intelligence", "Director of National Intelligence"),
("Dwight D. Eisenhower Memorial Commission", "Dwight D. Eisenhower Memorial Commission"),
("Election Assistance Commission", "Election Assistance Commission"),
("Environmental Protection Agency", "Environmental Protection Agency"),
("Equal Employment Opportunity Commission", "Equal Employment Opportunity Commission"),
("Executive Office of the President", "Executive Office of the President"),
("Export-Import Bank of the United States", "Export-Import Bank of the United States"),
("Export/Import Bank of the U.S.", "Export/Import Bank of the U.S."),
("Farm Credit Administration", "Farm Credit Administration"),
("Farm Credit System Insurance Corporation", "Farm Credit System Insurance Corporation"),
("Federal Communications Commission", "Federal Communications Commission"),
("Federal Deposit Insurance Corporation", "Federal Deposit Insurance Corporation"),
("Federal Election Commission", "Federal Election Commission"),
("Federal Energy Regulatory Commission", "Federal Energy Regulatory Commission"),
(
"Federal Financial Institutions Examination Council",
"Federal Financial Institutions Examination Council",
),
("Federal Housing Finance Agency", "Federal Housing Finance Agency"),
("Federal Judiciary", "Federal Judiciary"),
("Federal Labor Relations Authority", "Federal Labor Relations Authority"),
("Federal Maritime Commission", "Federal Maritime Commission"),
("Federal Mediation and Conciliation Service", "Federal Mediation and Conciliation Service"),
(
"Federal Mine Safety and Health Review Commission",
"Federal Mine Safety and Health Review Commission",
),
(
"Federal Permitting Improvement Steering Council",
"Federal Permitting Improvement Steering Council",
),
("Federal Reserve Board of Governors", "Federal Reserve Board of Governors"),
("Federal Reserve System", "Federal Reserve System"),
("Federal Trade Commission", "Federal Trade Commission"),
("General Services Administration", "General Services Administration"),
("gov Administration", "gov Administration"),
("Government Accountability Office", "Government Accountability Office"),
("Government Publishing Office", "Government Publishing Office"),
("Gulf Coast Ecosystem Restoration Council", "Gulf Coast Ecosystem Restoration Council"),
("Harry S Truman Scholarship Foundation", "Harry S Truman Scholarship Foundation"),
("Harry S. Truman Scholarship Foundation", "Harry S. Truman Scholarship Foundation"),
("Institute of Museum and Library Services", "Institute of Museum and Library Services"),
("Institute of Peace", "Institute of Peace"),
("Inter-American Foundation", "Inter-American Foundation"),
(
"International Boundary and Water Commission: United States and Mexico",
"International Boundary and Water Commission: United States and Mexico",
),
(
"International Boundary Commission: United States and Canada",
"International Boundary Commission: United States and Canada",
),
(
"International Joint Commission: United States and Canada",
"International Joint Commission: United States and Canada",
),
("James Madison Memorial Fellowship Foundation", "James Madison Memorial Fellowship Foundation"),
("Japan-United States Friendship Commission", "Japan-United States Friendship Commission"),
("Japan-US Friendship Commission", "Japan-US Friendship Commission"),
("John F. Kennedy Center for Performing Arts", "John F. Kennedy Center for Performing Arts"),
(
"John F. Kennedy Center for the Performing Arts",
"John F. Kennedy Center for the Performing Arts",
),
("Legal Services Corporation", "Legal Services Corporation"),
("Legislative Branch", "Legislative Branch"),
("Library of Congress", "Library of Congress"),
("Marine Mammal Commission", "Marine Mammal Commission"),
(
"Medicaid and CHIP Payment and Access Commission",
"Medicaid and CHIP Payment and Access Commission",
),
("Medical Payment Advisory Commission", "Medical Payment Advisory Commission"),
("Medicare Payment Advisory Commission", "Medicare Payment Advisory Commission"),
("Merit Systems Protection Board", "Merit Systems Protection Board"),
("Millennium Challenge Corporation", "Millennium Challenge Corporation"),
(
"Morris K. Udall and Stewart L. Udall Foundation",
"Morris K. Udall and Stewart L. Udall Foundation",
),
("National Aeronautics and Space Administration", "National Aeronautics and Space Administration"),
("National Archives and Records Administration", "National Archives and Records Administration"),
("National Capital Planning Commission", "National Capital Planning Commission"),
("National Council on Disability", "National Council on Disability"),
("National Credit Union Administration", "National Credit Union Administration"),
("National Endowment for the Arts", "National Endowment for the Arts"),
("National Endowment for the Humanities", "National Endowment for the Humanities"),
(
"National Foundation on the Arts and the Humanities",
"National Foundation on the Arts and the Humanities",
),
("National Gallery of Art", "National Gallery of Art"),
("National Indian Gaming Commission", "National Indian Gaming Commission"),
("National Labor Relations Board", "National Labor Relations Board"),
("National Mediation Board", "National Mediation Board"),
("National Science Foundation", "National Science Foundation"),
(
"National Security Commission on Artificial Intelligence",
"National Security Commission on Artificial Intelligence",
),
("National Transportation Safety Board", "National Transportation Safety Board"),
(
"Networking Information Technology Research and Development",
"Networking Information Technology Research and Development",
),
("Non-Federal Agency", "Non-Federal Agency"),
("Northern Border Regional Commission", "Northern Border Regional Commission"),
("Nuclear Regulatory Commission", "Nuclear Regulatory Commission"),
("Nuclear Safety Oversight Committee", "Nuclear Safety Oversight Committee"),
("Nuclear Waste Technical Review Board", "Nuclear Waste Technical Review Board"),
(
"Occupational Safety & Health Review Commission",
"Occupational Safety & Health Review Commission",
),
(
"Occupational Safety and Health Review Commission",
"Occupational Safety and Health Review Commission",
),
("Office of Compliance", "Office of Compliance"),
("Office of Congressional Workplace Rights", "Office of Congressional Workplace Rights"),
("Office of Government Ethics", "Office of Government Ethics"),
("Office of Navajo and Hopi Indian Relocation", "Office of Navajo and Hopi Indian Relocation"),
("Office of Personnel Management", "Office of Personnel Management"),
("Open World Leadership Center", "Open World Leadership Center"),
("Overseas Private Investment Corporation", "Overseas Private Investment Corporation"),
("Peace Corps", "Peace Corps"),
("Pension Benefit Guaranty Corporation", "Pension Benefit Guaranty Corporation"),
("Postal Regulatory Commission", "Postal Regulatory Commission"),
("Presidio Trust", "Presidio Trust"),
("Privacy and Civil Liberties Oversight Board", "Privacy and Civil Liberties Oversight Board"),
("Public Buildings Reform Board", "Public Buildings Reform Board"),
(
"Public Defender Service for the District of Columbia",
"Public Defender Service for the District of Columbia",
),
("Railroad Retirement Board", "Railroad Retirement Board"),
("Securities and Exchange Commission", "Securities and Exchange Commission"),
("Selective Service System", "Selective Service System"),
("Small Business Administration", "Small Business Administration"),
("Smithsonian Institution", "Smithsonian Institution"),
("Social Security Administration", "Social Security Administration"),
("Social Security Advisory Board", "Social Security Advisory Board"),
("Southeast Crescent Regional Commission", "Southeast Crescent Regional Commission"),
("Southwest Border Regional Commission", "Southwest Border Regional Commission"),
("State Justice Institute", "State Justice Institute"),
("State, Local, and Tribal Government", "State, Local, and Tribal Government"),
("Stennis Center for Public Service", "Stennis Center for Public Service"),
("Surface Transportation Board", "Surface Transportation Board"),
("Tennessee Valley Authority", "Tennessee Valley Authority"),
("The Executive Office of the President", "The Executive Office of the President"),
("The Intelligence Community", "The Intelligence Community"),
("The Legislative Branch", "The Legislative Branch"),
("The Supreme Court", "The Supreme Court"),
(
"The United States World War One Centennial Commission",
"The United States World War One Centennial Commission",
),
("U.S. Access Board", "U.S. Access Board"),
("U.S. Agency for Global Media", "U.S. Agency for Global Media"),
("U.S. Agency for International Development", "U.S. Agency for International Development"),
("U.S. Capitol Police", "U.S. Capitol Police"),
("U.S. Chemical Safety Board", "U.S. Chemical Safety Board"),
(
"U.S. China Economic and Security Review Commission",
"U.S. China Economic and Security Review Commission",
),
(
"U.S. Commission for the Preservation of Americas Heritage Abroad",
"U.S. Commission for the Preservation of Americas Heritage Abroad",
),
("U.S. Commission of Fine Arts", "U.S. Commission of Fine Arts"),
("U.S. Commission on Civil Rights", "U.S. Commission on Civil Rights"),
(
"U.S. Commission on International Religious Freedom",
"U.S. Commission on International Religious Freedom",
),
("U.S. Courts", "U.S. Courts"),
("U.S. Department of Agriculture", "U.S. Department of Agriculture"),
("U.S. Interagency Council on Homelessness", "U.S. Interagency Council on Homelessness"),
("U.S. International Trade Commission", "U.S. International Trade Commission"),
("U.S. Nuclear Waste Technical Review Board", "U.S. Nuclear Waste Technical Review Board"),
("U.S. Office of Special Counsel", "U.S. Office of Special Counsel"),
("U.S. Peace Corps", "U.S. Peace Corps"),
("U.S. Postal Service", "U.S. Postal Service"),
("U.S. Semiquincentennial Commission", "U.S. Semiquincentennial Commission"),
("U.S. Trade and Development Agency", "U.S. Trade and Development Agency"),
(
"U.S.-China Economic and Security Review Commission",
"U.S.-China Economic and Security Review Commission",
),
("Udall Foundation", "Udall Foundation"),
("United States AbilityOne", "United States AbilityOne"),
("United States Access Board", "United States Access Board"),
("United States African Development Foundation", "United States African Development Foundation"),
("United States Agency for Global Media", "United States Agency for Global Media"),
("United States Arctic Research Commission", "United States Arctic Research Commission"),
("United States Global Change Research Program", "United States Global Change Research Program"),
("United States Holocaust Memorial Museum", "United States Holocaust Memorial Museum"),
("United States Institute of Peace", "United States Institute of Peace"),
(
"United States Interagency Council on Homelessness",
"United States Interagency Council on Homelessness",
),
(
"United States International Development Finance Corporation",
"United States International Development Finance Corporation",
),
("United States International Trade Commission", "United States International Trade Commission"),
("United States Postal Service", "United States Postal Service"),
("United States Senate", "United States Senate"),
("United States Trade and Development Agency", "United States Trade and Development Agency"),
(
"Utah Reclamation Mitigation and Conservation Commission",
"Utah Reclamation Mitigation and Conservation Commission",
),
("Vietnam Education Foundation", "Vietnam Education Foundation"),
("Western Hemisphere Drug Policy Commission", "Western Hemisphere Drug Policy Commission"),
(
"Woodrow Wilson International Center for Scholars",
"Woodrow Wilson International Center for Scholars",
),
("World War I Centennial Commission", "World War I Centennial Commission"),
],
help_text="Federal agency",
null=True,
),
),
migrations.AlterField(
model_name="domainapplication",
name="state_territory",
field=models.CharField(
blank=True,
choices=[
("AL", "Alabama (AL)"),
("AK", "Alaska (AK)"),
("AS", "American Samoa (AS)"),
("AZ", "Arizona (AZ)"),
("AR", "Arkansas (AR)"),
("CA", "California (CA)"),
("CO", "Colorado (CO)"),
("CT", "Connecticut (CT)"),
("DE", "Delaware (DE)"),
("DC", "District of Columbia (DC)"),
("FL", "Florida (FL)"),
("GA", "Georgia (GA)"),
("GU", "Guam (GU)"),
("HI", "Hawaii (HI)"),
("ID", "Idaho (ID)"),
("IL", "Illinois (IL)"),
("IN", "Indiana (IN)"),
("IA", "Iowa (IA)"),
("KS", "Kansas (KS)"),
("KY", "Kentucky (KY)"),
("LA", "Louisiana (LA)"),
("ME", "Maine (ME)"),
("MD", "Maryland (MD)"),
("MA", "Massachusetts (MA)"),
("MI", "Michigan (MI)"),
("MN", "Minnesota (MN)"),
("MS", "Mississippi (MS)"),
("MO", "Missouri (MO)"),
("MT", "Montana (MT)"),
("NE", "Nebraska (NE)"),
("NV", "Nevada (NV)"),
("NH", "New Hampshire (NH)"),
("NJ", "New Jersey (NJ)"),
("NM", "New Mexico (NM)"),
("NY", "New York (NY)"),
("NC", "North Carolina (NC)"),
("ND", "North Dakota (ND)"),
("MP", "Northern Mariana Islands (MP)"),
("OH", "Ohio (OH)"),
("OK", "Oklahoma (OK)"),
("OR", "Oregon (OR)"),
("PA", "Pennsylvania (PA)"),
("PR", "Puerto Rico (PR)"),
("RI", "Rhode Island (RI)"),
("SC", "South Carolina (SC)"),
("SD", "South Dakota (SD)"),
("TN", "Tennessee (TN)"),
("TX", "Texas (TX)"),
("UM", "United States Minor Outlying Islands (UM)"),
("UT", "Utah (UT)"),
("VT", "Vermont (VT)"),
("VI", "Virgin Islands (VI)"),
("VA", "Virginia (VA)"),
("WA", "Washington (WA)"),
("WV", "West Virginia (WV)"),
("WI", "Wisconsin (WI)"),
("WY", "Wyoming (WY)"),
("AA", "Armed Forces Americas (AA)"),
("AE", "Armed Forces Africa, Canada, Europe, Middle East (AE)"),
("AP", "Armed Forces Pacific (AP)"),
],
help_text="State, territory, or military post",
max_length=2,
null=True,
),
),
migrations.AlterField(
model_name="domaininformation",
name="federal_agency",
field=models.TextField(
blank=True,
choices=[
(
"Administrative Conference of the United States",
"Administrative Conference of the United States",
),
("Advisory Council on Historic Preservation", "Advisory Council on Historic Preservation"),
("American Battle Monuments Commission", "American Battle Monuments Commission"),
("AMTRAK", "AMTRAK"),
("Appalachian Regional Commission", "Appalachian Regional Commission"),
(
"Appraisal Subcommittee of the Federal Financial Institutions Examination Council",
"Appraisal Subcommittee of the Federal Financial Institutions Examination Council",
),
("Appraisal Subcommittee", "Appraisal Subcommittee"),
("Architect of the Capitol", "Architect of the Capitol"),
("Armed Forces Retirement Home", "Armed Forces Retirement Home"),
(
"Barry Goldwater Scholarship and Excellence in Education Foundation",
"Barry Goldwater Scholarship and Excellence in Education Foundation",
),
(
"Barry Goldwater Scholarship and Excellence in Education Program",
"Barry Goldwater Scholarship and Excellence in Education Program",
),
("Central Intelligence Agency", "Central Intelligence Agency"),
("Chemical Safety Board", "Chemical Safety Board"),
("Christopher Columbus Fellowship Foundation", "Christopher Columbus Fellowship Foundation"),
("Civil Rights Cold Case Records Review Board", "Civil Rights Cold Case Records Review Board"),
(
"Commission for the Preservation of America's Heritage Abroad",
"Commission for the Preservation of America's Heritage Abroad",
),
("Commission of Fine Arts", "Commission of Fine Arts"),
(
"Committee for Purchase From People Who Are Blind or Severely Disabled",
"Committee for Purchase From People Who Are Blind or Severely Disabled",
),
("Commodity Futures Trading Commission", "Commodity Futures Trading Commission"),
("Congressional Budget Office", "Congressional Budget Office"),
("Consumer Financial Protection Bureau", "Consumer Financial Protection Bureau"),
("Consumer Product Safety Commission", "Consumer Product Safety Commission"),
("Corporation for National & Community Service", "Corporation for National & Community Service"),
(
"Corporation for National and Community Service",
"Corporation for National and Community Service",
),
(
"Council of Inspectors General on Integrity and Efficiency",
"Council of Inspectors General on Integrity and Efficiency",
),
("Court Services and Offender Supervision", "Court Services and Offender Supervision"),
("Cyberspace Solarium Commission", "Cyberspace Solarium Commission"),
(
"DC Court Services and Offender Supervision Agency",
"DC Court Services and Offender Supervision Agency",
),
("DC Pre-trial Services", "DC Pre-trial Services"),
("Defense Nuclear Facilities Safety Board", "Defense Nuclear Facilities Safety Board"),
("Delta Regional Authority", "Delta Regional Authority"),
("Denali Commission", "Denali Commission"),
("Department of Agriculture", "Department of Agriculture"),
("Department of Commerce", "Department of Commerce"),
("Department of Defense", "Department of Defense"),
("Department of Education", "Department of Education"),
("Department of Energy", "Department of Energy"),
("Department of Health and Human Services", "Department of Health and Human Services"),
("Department of Homeland Security", "Department of Homeland Security"),
("Department of Housing and Urban Development", "Department of Housing and Urban Development"),
("Department of Justice", "Department of Justice"),
("Department of Labor", "Department of Labor"),
("Department of State", "Department of State"),
("Department of the Interior", "Department of the Interior"),
("Department of the Treasury", "Department of the Treasury"),
("Department of Transportation", "Department of Transportation"),
("Department of Veterans Affairs", "Department of Veterans Affairs"),
("Director of National Intelligence", "Director of National Intelligence"),
("Dwight D. Eisenhower Memorial Commission", "Dwight D. Eisenhower Memorial Commission"),
("Election Assistance Commission", "Election Assistance Commission"),
("Environmental Protection Agency", "Environmental Protection Agency"),
("Equal Employment Opportunity Commission", "Equal Employment Opportunity Commission"),
("Executive Office of the President", "Executive Office of the President"),
("Export-Import Bank of the United States", "Export-Import Bank of the United States"),
("Export/Import Bank of the U.S.", "Export/Import Bank of the U.S."),
("Farm Credit Administration", "Farm Credit Administration"),
("Farm Credit System Insurance Corporation", "Farm Credit System Insurance Corporation"),
("Federal Communications Commission", "Federal Communications Commission"),
("Federal Deposit Insurance Corporation", "Federal Deposit Insurance Corporation"),
("Federal Election Commission", "Federal Election Commission"),
("Federal Energy Regulatory Commission", "Federal Energy Regulatory Commission"),
(
"Federal Financial Institutions Examination Council",
"Federal Financial Institutions Examination Council",
),
("Federal Housing Finance Agency", "Federal Housing Finance Agency"),
("Federal Judiciary", "Federal Judiciary"),
("Federal Labor Relations Authority", "Federal Labor Relations Authority"),
("Federal Maritime Commission", "Federal Maritime Commission"),
("Federal Mediation and Conciliation Service", "Federal Mediation and Conciliation Service"),
(
"Federal Mine Safety and Health Review Commission",
"Federal Mine Safety and Health Review Commission",
),
(
"Federal Permitting Improvement Steering Council",
"Federal Permitting Improvement Steering Council",
),
("Federal Reserve Board of Governors", "Federal Reserve Board of Governors"),
("Federal Reserve System", "Federal Reserve System"),
("Federal Trade Commission", "Federal Trade Commission"),
("General Services Administration", "General Services Administration"),
("gov Administration", "gov Administration"),
("Government Accountability Office", "Government Accountability Office"),
("Government Publishing Office", "Government Publishing Office"),
("Gulf Coast Ecosystem Restoration Council", "Gulf Coast Ecosystem Restoration Council"),
("Harry S Truman Scholarship Foundation", "Harry S Truman Scholarship Foundation"),
("Harry S. Truman Scholarship Foundation", "Harry S. Truman Scholarship Foundation"),
("Institute of Museum and Library Services", "Institute of Museum and Library Services"),
("Institute of Peace", "Institute of Peace"),
("Inter-American Foundation", "Inter-American Foundation"),
(
"International Boundary and Water Commission: United States and Mexico",
"International Boundary and Water Commission: United States and Mexico",
),
(
"International Boundary Commission: United States and Canada",
"International Boundary Commission: United States and Canada",
),
(
"International Joint Commission: United States and Canada",
"International Joint Commission: United States and Canada",
),
("James Madison Memorial Fellowship Foundation", "James Madison Memorial Fellowship Foundation"),
("Japan-United States Friendship Commission", "Japan-United States Friendship Commission"),
("Japan-US Friendship Commission", "Japan-US Friendship Commission"),
("John F. Kennedy Center for Performing Arts", "John F. Kennedy Center for Performing Arts"),
(
"John F. Kennedy Center for the Performing Arts",
"John F. Kennedy Center for the Performing Arts",
),
("Legal Services Corporation", "Legal Services Corporation"),
("Legislative Branch", "Legislative Branch"),
("Library of Congress", "Library of Congress"),
("Marine Mammal Commission", "Marine Mammal Commission"),
(
"Medicaid and CHIP Payment and Access Commission",
"Medicaid and CHIP Payment and Access Commission",
),
("Medical Payment Advisory Commission", "Medical Payment Advisory Commission"),
("Medicare Payment Advisory Commission", "Medicare Payment Advisory Commission"),
("Merit Systems Protection Board", "Merit Systems Protection Board"),
("Millennium Challenge Corporation", "Millennium Challenge Corporation"),
(
"Morris K. Udall and Stewart L. Udall Foundation",
"Morris K. Udall and Stewart L. Udall Foundation",
),
("National Aeronautics and Space Administration", "National Aeronautics and Space Administration"),
("National Archives and Records Administration", "National Archives and Records Administration"),
("National Capital Planning Commission", "National Capital Planning Commission"),
("National Council on Disability", "National Council on Disability"),
("National Credit Union Administration", "National Credit Union Administration"),
("National Endowment for the Arts", "National Endowment for the Arts"),
("National Endowment for the Humanities", "National Endowment for the Humanities"),
(
"National Foundation on the Arts and the Humanities",
"National Foundation on the Arts and the Humanities",
),
("National Gallery of Art", "National Gallery of Art"),
("National Indian Gaming Commission", "National Indian Gaming Commission"),
("National Labor Relations Board", "National Labor Relations Board"),
("National Mediation Board", "National Mediation Board"),
("National Science Foundation", "National Science Foundation"),
(
"National Security Commission on Artificial Intelligence",
"National Security Commission on Artificial Intelligence",
),
("National Transportation Safety Board", "National Transportation Safety Board"),
(
"Networking Information Technology Research and Development",
"Networking Information Technology Research and Development",
),
("Non-Federal Agency", "Non-Federal Agency"),
("Northern Border Regional Commission", "Northern Border Regional Commission"),
("Nuclear Regulatory Commission", "Nuclear Regulatory Commission"),
("Nuclear Safety Oversight Committee", "Nuclear Safety Oversight Committee"),
("Nuclear Waste Technical Review Board", "Nuclear Waste Technical Review Board"),
(
"Occupational Safety & Health Review Commission",
"Occupational Safety & Health Review Commission",
),
(
"Occupational Safety and Health Review Commission",
"Occupational Safety and Health Review Commission",
),
("Office of Compliance", "Office of Compliance"),
("Office of Congressional Workplace Rights", "Office of Congressional Workplace Rights"),
("Office of Government Ethics", "Office of Government Ethics"),
("Office of Navajo and Hopi Indian Relocation", "Office of Navajo and Hopi Indian Relocation"),
("Office of Personnel Management", "Office of Personnel Management"),
("Open World Leadership Center", "Open World Leadership Center"),
("Overseas Private Investment Corporation", "Overseas Private Investment Corporation"),
("Peace Corps", "Peace Corps"),
("Pension Benefit Guaranty Corporation", "Pension Benefit Guaranty Corporation"),
("Postal Regulatory Commission", "Postal Regulatory Commission"),
("Presidio Trust", "Presidio Trust"),
("Privacy and Civil Liberties Oversight Board", "Privacy and Civil Liberties Oversight Board"),
("Public Buildings Reform Board", "Public Buildings Reform Board"),
(
"Public Defender Service for the District of Columbia",
"Public Defender Service for the District of Columbia",
),
("Railroad Retirement Board", "Railroad Retirement Board"),
("Securities and Exchange Commission", "Securities and Exchange Commission"),
("Selective Service System", "Selective Service System"),
("Small Business Administration", "Small Business Administration"),
("Smithsonian Institution", "Smithsonian Institution"),
("Social Security Administration", "Social Security Administration"),
("Social Security Advisory Board", "Social Security Advisory Board"),
("Southeast Crescent Regional Commission", "Southeast Crescent Regional Commission"),
("Southwest Border Regional Commission", "Southwest Border Regional Commission"),
("State Justice Institute", "State Justice Institute"),
("State, Local, and Tribal Government", "State, Local, and Tribal Government"),
("Stennis Center for Public Service", "Stennis Center for Public Service"),
("Surface Transportation Board", "Surface Transportation Board"),
("Tennessee Valley Authority", "Tennessee Valley Authority"),
("The Executive Office of the President", "The Executive Office of the President"),
("The Intelligence Community", "The Intelligence Community"),
("The Legislative Branch", "The Legislative Branch"),
("The Supreme Court", "The Supreme Court"),
(
"The United States World War One Centennial Commission",
"The United States World War One Centennial Commission",
),
("U.S. Access Board", "U.S. Access Board"),
("U.S. Agency for Global Media", "U.S. Agency for Global Media"),
("U.S. Agency for International Development", "U.S. Agency for International Development"),
("U.S. Capitol Police", "U.S. Capitol Police"),
("U.S. Chemical Safety Board", "U.S. Chemical Safety Board"),
(
"U.S. China Economic and Security Review Commission",
"U.S. China Economic and Security Review Commission",
),
(
"U.S. Commission for the Preservation of Americas Heritage Abroad",
"U.S. Commission for the Preservation of Americas Heritage Abroad",
),
("U.S. Commission of Fine Arts", "U.S. Commission of Fine Arts"),
("U.S. Commission on Civil Rights", "U.S. Commission on Civil Rights"),
(
"U.S. Commission on International Religious Freedom",
"U.S. Commission on International Religious Freedom",
),
("U.S. Courts", "U.S. Courts"),
("U.S. Department of Agriculture", "U.S. Department of Agriculture"),
("U.S. Interagency Council on Homelessness", "U.S. Interagency Council on Homelessness"),
("U.S. International Trade Commission", "U.S. International Trade Commission"),
("U.S. Nuclear Waste Technical Review Board", "U.S. Nuclear Waste Technical Review Board"),
("U.S. Office of Special Counsel", "U.S. Office of Special Counsel"),
("U.S. Peace Corps", "U.S. Peace Corps"),
("U.S. Postal Service", "U.S. Postal Service"),
("U.S. Semiquincentennial Commission", "U.S. Semiquincentennial Commission"),
("U.S. Trade and Development Agency", "U.S. Trade and Development Agency"),
(
"U.S.-China Economic and Security Review Commission",
"U.S.-China Economic and Security Review Commission",
),
("Udall Foundation", "Udall Foundation"),
("United States AbilityOne", "United States AbilityOne"),
("United States Access Board", "United States Access Board"),
("United States African Development Foundation", "United States African Development Foundation"),
("United States Agency for Global Media", "United States Agency for Global Media"),
("United States Arctic Research Commission", "United States Arctic Research Commission"),
("United States Global Change Research Program", "United States Global Change Research Program"),
("United States Holocaust Memorial Museum", "United States Holocaust Memorial Museum"),
("United States Institute of Peace", "United States Institute of Peace"),
(
"United States Interagency Council on Homelessness",
"United States Interagency Council on Homelessness",
),
(
"United States International Development Finance Corporation",
"United States International Development Finance Corporation",
),
("United States International Trade Commission", "United States International Trade Commission"),
("United States Postal Service", "United States Postal Service"),
("United States Senate", "United States Senate"),
("United States Trade and Development Agency", "United States Trade and Development Agency"),
(
"Utah Reclamation Mitigation and Conservation Commission",
"Utah Reclamation Mitigation and Conservation Commission",
),
("Vietnam Education Foundation", "Vietnam Education Foundation"),
("Western Hemisphere Drug Policy Commission", "Western Hemisphere Drug Policy Commission"),
(
"Woodrow Wilson International Center for Scholars",
"Woodrow Wilson International Center for Scholars",
),
("World War I Centennial Commission", "World War I Centennial Commission"),
],
help_text="Federal agency",
null=True,
),
),
migrations.AlterField(
model_name="domaininformation",
name="state_territory",
field=models.CharField(
blank=True,
choices=[
("AL", "Alabama (AL)"),
("AK", "Alaska (AK)"),
("AS", "American Samoa (AS)"),
("AZ", "Arizona (AZ)"),
("AR", "Arkansas (AR)"),
("CA", "California (CA)"),
("CO", "Colorado (CO)"),
("CT", "Connecticut (CT)"),
("DE", "Delaware (DE)"),
("DC", "District of Columbia (DC)"),
("FL", "Florida (FL)"),
("GA", "Georgia (GA)"),
("GU", "Guam (GU)"),
("HI", "Hawaii (HI)"),
("ID", "Idaho (ID)"),
("IL", "Illinois (IL)"),
("IN", "Indiana (IN)"),
("IA", "Iowa (IA)"),
("KS", "Kansas (KS)"),
("KY", "Kentucky (KY)"),
("LA", "Louisiana (LA)"),
("ME", "Maine (ME)"),
("MD", "Maryland (MD)"),
("MA", "Massachusetts (MA)"),
("MI", "Michigan (MI)"),
("MN", "Minnesota (MN)"),
("MS", "Mississippi (MS)"),
("MO", "Missouri (MO)"),
("MT", "Montana (MT)"),
("NE", "Nebraska (NE)"),
("NV", "Nevada (NV)"),
("NH", "New Hampshire (NH)"),
("NJ", "New Jersey (NJ)"),
("NM", "New Mexico (NM)"),
("NY", "New York (NY)"),
("NC", "North Carolina (NC)"),
("ND", "North Dakota (ND)"),
("MP", "Northern Mariana Islands (MP)"),
("OH", "Ohio (OH)"),
("OK", "Oklahoma (OK)"),
("OR", "Oregon (OR)"),
("PA", "Pennsylvania (PA)"),
("PR", "Puerto Rico (PR)"),
("RI", "Rhode Island (RI)"),
("SC", "South Carolina (SC)"),
("SD", "South Dakota (SD)"),
("TN", "Tennessee (TN)"),
("TX", "Texas (TX)"),
("UM", "United States Minor Outlying Islands (UM)"),
("UT", "Utah (UT)"),
("VT", "Vermont (VT)"),
("VI", "Virgin Islands (VI)"),
("VA", "Virginia (VA)"),
("WA", "Washington (WA)"),
("WV", "West Virginia (WV)"),
("WI", "Wisconsin (WI)"),
("WY", "Wyoming (WY)"),
("AA", "Armed Forces Americas (AA)"),
("AE", "Armed Forces Africa, Canada, Europe, Middle East (AE)"),
("AP", "Armed Forces Pacific (AP)"),
],
help_text="State, territory, or military post",
max_length=2,
null=True,
verbose_name="State, territory, or military post",
),
),
]

View file

@ -38,6 +38,7 @@ auditlog.register(DomainApplication)
auditlog.register(Domain)
auditlog.register(DraftDomain)
auditlog.register(DomainInvitation)
auditlog.register(DomainInformation)
auditlog.register(HostIP)
auditlog.register(Host)
auditlog.register(Nameserver)

View file

@ -409,6 +409,7 @@ class DomainApplication(TimeStampedModel):
)
federal_agency = models.TextField(
choices=AGENCY_CHOICES,
null=True,
blank=True,
help_text="Federal agency",
@ -451,6 +452,7 @@ class DomainApplication(TimeStampedModel):
)
state_territory = models.CharField(
max_length=2,
choices=StateTerritoryChoices.choices,
null=True,
blank=True,
help_text="State, territory, or military post",

View file

@ -72,6 +72,7 @@ class DomainInformation(TimeStampedModel):
)
federal_agency = models.TextField(
choices=AGENCY_CHOICES,
null=True,
blank=True,
help_text="Federal agency",
@ -116,6 +117,7 @@ class DomainInformation(TimeStampedModel):
)
state_territory = models.CharField(
max_length=2,
choices=StateTerritoryChoices.choices,
null=True,
blank=True,
help_text="State, territory, or military post",

View file

@ -91,7 +91,7 @@ class User(AbstractUser):
# A new incoming user who is being invited to be a domain manager (that is,
# their email address is in DomainInvitation for an invitation that is not yet "retrieved").
if DomainInvitation.objects.filter(email=email, status=DomainInvitation.INVITED):
if DomainInvitation.objects.filter(email=email, status=DomainInvitation.INVITED).exists():
return False
return True

View file

@ -1,5 +1,7 @@
<!doctype html>{# keep this on the first line #}
{% load i18n static %}
{% load static url_helpers %}
<html class="no-js" lang="{{ LANGUAGE_CODE }}">
<head>
@ -144,13 +146,13 @@
<header class="usa-header usa-header-basic">
<div class="usa-nav-container">
<div class="usa-navbar">
{% block logo %}
<div class="usa-logo" id="extended-logo">
<strong class="usa-logo__text" >
<a href="{% url 'home' %}"> .gov </a>
</strong>
</div>
{% endblock %}
{% block logo %}
<div class="usa-logo display-inline-block" id="extended-logo">
<strong class="usa-logo__text" >
<a href="{% url 'home' %}">.gov registrar </a>
</strong>
</div>
{% endblock %}
<button type="button" class="usa-menu-btn">Menu</button>
</div>
{% block usa_nav %}

View file

@ -5,17 +5,15 @@
{% block content %}
<div class="grid-container">
<div class="grid-row">
{% if not is_analyst_or_superuser or not analyst_action or analyst_action_location != domain.pk %}
<p class="font-body-md margin-top-0 margin-bottom-2
text-primary-darker text-semibold"
>
<span class="usa-sr-only"> Domain name:</span> {{ domain.name }}
</p>
{% endif %}
</div>
<div class="grid-row grid-gap">
<div class="tablet:grid-col-3">
<p class="font-body-md margin-top-0 margin-bottom-2
text-primary-darker text-semibold"
>
<span class="usa-sr-only"> Domain name:</span> {{ domain.name }}
</p>
{% if domain.domain_info %}
{% include 'domain_sidebar.html' %}
{% endif %}
@ -42,16 +40,6 @@
</p>
</div>
</div>
{% else %}
<a href="{% url 'home' %}" class="breadcrumb__back">
<svg class="usa-icon" aria-hidden="true" focusable="false" role="img">
<use xlink:href="{% static 'img/sprite.svg' %}#arrow_back"></use>
</svg>
<p class="margin-left-05 margin-top-0 margin-bottom-0 line-height-sans-1">
Back to manage your domains
</p>
</a>
{% endif %}
{# messages block is under the back breadcrumb link #}
{% if messages %}

View file

@ -26,6 +26,10 @@
>
<address class="usa-footer__address">
<div class="usa-footer__contact-info grid-row grid-gap-md">
<div class="grid-col-auto">
<a class="usa-link" rel="noopener noreferrer" href="{% url 'home' %}">Manage your domains</a>
</div>
<span class=""> | </span>
<div class="grid-col-auto">
<a class="usa-link" rel="noopener noreferrer" target="_blank" href="{% public_site_url 'help/' %}">Help </a>
</div>

View file

@ -74,6 +74,24 @@ class TestFormValidation(MockEppLib):
["Enter the .gov domain you want without any periods."],
)
def test_requested_domain_two_dots_invalid(self):
"""don't accept domains that are subdomains"""
form = DotGovDomainForm(data={"requested_domain": "sub.top-level-agency.gov"})
self.assertEqual(
form.errors["requested_domain"],
["Enter the .gov domain you want without any periods."],
)
form = DotGovDomainForm(data={"requested_domain": ".top-level-agency.gov"})
self.assertEqual(
form.errors["requested_domain"],
["Enter the .gov domain you want without any periods."],
)
form = DotGovDomainForm(data={"requested_domain": "..gov"})
self.assertEqual(
form.errors["requested_domain"],
["Enter the .gov domain you want without any periods."],
)
def test_requested_domain_invalid_characters(self):
"""must be a valid .gov domain name."""
form = DotGovDomainForm(data={"requested_domain": "underscores_forever"})

View file

@ -623,7 +623,6 @@ class TestUser(TestCase):
TransitionDomain.objects.all().delete()
User.objects.all().delete()
UserDomainRole.objects.all().delete()
TransitionDomain.objects.get_or_create(username="mayor@igorville.gov", domain_name=self.domain_name)
def test_check_transition_domains_without_domains_on_login(self):
"""A user's on_each_login callback does not check transition domains.

View file

@ -110,7 +110,7 @@ class TestURLAuth(TestCase):
"/openid/callback",
"/openid/callback/login/",
"/openid/callback/logout/",
"/api/v1/available/whitehouse.gov",
"/api/v1/available/",
"/api/v1/get-report/current-federal",
"/api/v1/get-report/current-full",
]

View file

@ -1083,7 +1083,7 @@ class DomainApplicationTests(TestWithUser, WebTest):
home_page = self.app.get("/")
self.assertContains(home_page, "city.gov")
# click the "Edit" link
detail_page = home_page.click("Manage")
detail_page = home_page.click("Manage", index=0)
self.assertContains(detail_page, "Federal: an agency of the U.S. government")
@ -2123,7 +2123,7 @@ class TestApplicationStatus(TestWithUser, WebTest):
home_page = self.app.get("/")
self.assertContains(home_page, "city.gov")
# click the "Manage" link
detail_page = home_page.click("Manage")
detail_page = home_page.click("Manage", index=0)
self.assertContains(detail_page, "city.gov")
self.assertContains(detail_page, "city1.gov")
self.assertContains(detail_page, "Chief Tester")
@ -2143,7 +2143,7 @@ class TestApplicationStatus(TestWithUser, WebTest):
home_page = self.app.get("/")
self.assertContains(home_page, "city.gov")
# click the "Manage" link
detail_page = home_page.click("Manage")
detail_page = home_page.click("Manage", index=0)
self.assertContains(detail_page, "city.gov")
self.assertContains(detail_page, "Chief Tester")
self.assertContains(detail_page, "testy@town.com")
@ -2158,7 +2158,7 @@ class TestApplicationStatus(TestWithUser, WebTest):
home_page = self.app.get("/")
self.assertContains(home_page, "city.gov")
# click the "Manage" link
detail_page = home_page.click("Manage")
detail_page = home_page.click("Manage", index=0)
self.assertContains(detail_page, "city.gov")
self.assertContains(detail_page, "city1.gov")
self.assertContains(detail_page, "Chief Tester")