change very import person to verfied by staff

This commit is contained in:
Alysia Broddrick 2024-01-29 14:39:26 -08:00
parent 2ad463ec62
commit cca111bdec
No known key found for this signature in database
GPG key ID: 03917052CD0F06B7
9 changed files with 71 additions and 12 deletions

View file

@ -1338,4 +1338,4 @@ admin.site.register(models.Website, WebsiteAdmin)
admin.site.register(models.PublicContact, AuditedAdmin) admin.site.register(models.PublicContact, AuditedAdmin)
admin.site.register(models.DomainApplication, DomainApplicationAdmin) admin.site.register(models.DomainApplication, DomainApplicationAdmin)
admin.site.register(models.TransitionDomain, TransitionDomainAdmin) admin.site.register(models.TransitionDomain, TransitionDomainAdmin)
admin.site.register(models.VeryImportantPerson, VeryImportantPersonAdmin) admin.site.register(models.VerifiedByStaff, VeryImportantPersonAdmin)

View file

@ -0,0 +1,20 @@
# Generated by Django 4.2.7 on 2024-01-29 22:21
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("registrar", "0065_create_groups_v06"),
]
operations = [
migrations.RenameModel(
old_name="VeryImportantPerson",
new_name="VerifiedByStaff",
),
migrations.AlterModelOptions(
name="verifiedbystaff",
options={"verbose_name_plural": "Verified by staff"},
),
]

View file

@ -0,0 +1,37 @@
# This migration creates the create_full_access_group and create_cisa_analyst_group groups
# It is dependent on 0035 (which populates ContentType and Permissions)
# If permissions on the groups need changing, edit CISA_ANALYST_GROUP_PERMISSIONS
# in the user_group model then:
# [NOT RECOMMENDED]
# step 1: docker-compose exec app ./manage.py migrate --fake registrar 0035_contenttypes_permissions
# step 2: docker-compose exec app ./manage.py migrate registrar 0036_create_groups
# step 3: fake run the latest migration in the migrations list
# [RECOMMENDED]
# Alternatively:
# step 1: duplicate the migration that loads data
# step 2: docker-compose exec app ./manage.py migrate
from django.db import migrations
from registrar.models import UserGroup
from typing import Any
# For linting: RunPython expects a function reference,
# so let's give it one
def create_groups(apps, schema_editor) -> Any:
UserGroup.create_cisa_analyst_group(apps, schema_editor)
UserGroup.create_full_access_group(apps, schema_editor)
class Migration(migrations.Migration):
dependencies = [
("registrar", "0066_rename_veryimportperson_verifiedbystaff_and_more"),
]
operations = [
migrations.RunPython(
create_groups,
reverse_code=migrations.RunPython.noop,
atomic=True,
),
]

View file

@ -13,7 +13,7 @@ from .user import User
from .user_group import UserGroup from .user_group import UserGroup
from .website import Website from .website import Website
from .transition_domain import TransitionDomain from .transition_domain import TransitionDomain
from .very_important_person import VeryImportantPerson from .verified_by_staff import VerifiedByStaff
__all__ = [ __all__ = [
"Contact", "Contact",
@ -30,7 +30,7 @@ __all__ = [
"UserGroup", "UserGroup",
"Website", "Website",
"TransitionDomain", "TransitionDomain",
"VeryImportantPerson", "VerifiedByStaff",
] ]
auditlog.register(Contact) auditlog.register(Contact)
@ -47,4 +47,4 @@ auditlog.register(User, m2m_fields=["user_permissions", "groups"])
auditlog.register(UserGroup, m2m_fields=["permissions"]) auditlog.register(UserGroup, m2m_fields=["permissions"])
auditlog.register(Website) auditlog.register(Website)
auditlog.register(TransitionDomain) auditlog.register(TransitionDomain)
auditlog.register(VeryImportantPerson) auditlog.register(VerifiedByStaff)

View file

@ -7,7 +7,7 @@ from registrar.models.user_domain_role import UserDomainRole
from .domain_invitation import DomainInvitation from .domain_invitation import DomainInvitation
from .transition_domain import TransitionDomain from .transition_domain import TransitionDomain
from .very_important_person import VeryImportantPerson from .verified_by_staff import VerifiedByStaff
from .domain import Domain from .domain import Domain
from phonenumber_field.modelfields import PhoneNumberField # type: ignore from phonenumber_field.modelfields import PhoneNumberField # type: ignore
@ -91,7 +91,7 @@ class User(AbstractUser):
return False return False
# New users flagged by Staff to bypass ial2 # New users flagged by Staff to bypass ial2
if VeryImportantPerson.objects.filter(email=email).exists(): if VerifiedByStaff.objects.filter(email=email).exists():
return False return False
# A new incoming user who is being invited to be a domain manager (that is, # A new incoming user who is being invited to be a domain manager (that is,

View file

@ -68,8 +68,8 @@ class UserGroup(Group):
}, },
{ {
"app_label": "registrar", "app_label": "registrar",
"model": "veryimportantperson", "model": "verifiedbystaff",
"permissions": ["add_veryimportantperson", "change_veryimportantperson", "delete_veryimportantperson"], "permissions": ["add_verifiedbystaff", "change_verifiedbystaff", "delete_verifiedbystaff"],
}, },
] ]

View file

@ -3,7 +3,7 @@ from django.db import models
from .utility.time_stamped_model import TimeStampedModel from .utility.time_stamped_model import TimeStampedModel
class VeryImportantPerson(TimeStampedModel): class VerifiedByStaff(TimeStampedModel):
"""emails that get added to this table will bypass ial2 on login.""" """emails that get added to this table will bypass ial2 on login."""
@ -27,6 +27,8 @@ class VeryImportantPerson(TimeStampedModel):
blank=False, blank=False,
help_text="Notes", help_text="Notes",
) )
class Meta:
verbose_name_plural ="Verified by staff"
def __str__(self): def __str__(self):
return self.email return self.email

View file

@ -18,7 +18,7 @@ from registrar.admin import (
) )
from registrar.models import Domain, DomainApplication, DomainInformation, User, DomainInvitation, Contact, Website from registrar.models import Domain, DomainApplication, DomainInformation, User, DomainInvitation, Contact, Website
from registrar.models.user_domain_role import UserDomainRole from registrar.models.user_domain_role import UserDomainRole
from registrar.models.very_important_person import VeryImportantPerson from registrar.models.verified_by_staff import VeryImportantPerson
from .common import ( from .common import (
MockSESClient, MockSESClient,
AuditedAdminMockData, AuditedAdminMockData,

View file

@ -16,7 +16,7 @@ from registrar.models import (
import boto3_mocking import boto3_mocking
from registrar.models.transition_domain import TransitionDomain from registrar.models.transition_domain import TransitionDomain
from registrar.models.very_important_person import VeryImportantPerson # type: ignore from registrar.models.verified_by_staff import VeryImportantPerson # type: ignore
from .common import MockSESClient, less_console_noise, completed_application from .common import MockSESClient, less_console_noise, completed_application
from django_fsm import TransitionNotAllowed from django_fsm import TransitionNotAllowed