Merge branch 'za/1924-remove-domain-info-for-analysts' into za/1948-remove-draft-domain-and-websites

This commit is contained in:
zandercymatics 2024-04-03 09:08:08 -06:00
commit 88ae1f92b1
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
5 changed files with 48 additions and 10 deletions

View file

@ -1436,6 +1436,13 @@ class DomainInformationInline(admin.StackedInline):
"submitter", "submitter",
] ]
def has_change_permission(self, request, obj=None):
"""Custom has_change_permission override so that we can specify that
analysts can edit this through this inline, but not through the model normally"""
if request.user.has_perm("registrar.analyst_access_permission"):
return True
return super().has_change_permission(request, obj)
def formfield_for_manytomany(self, db_field, request, **kwargs): def formfield_for_manytomany(self, db_field, request, **kwargs):
"""customize the behavior of formfields with manytomany relationships. the customized """customize the behavior of formfields with manytomany relationships. the customized
behavior includes sorting of objects in lists as well as customizing helper text""" behavior includes sorting of objects in lists as well as customizing helper text"""

View file

@ -0,0 +1,37 @@
# This migration creates the create_full_access_group and create_cisa_analyst_group groups
# It is dependent on 0079 (which populates federal agencies)
# 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", "0080_create_groups_v09"),
]
operations = [
migrations.RunPython(
create_groups,
reverse_code=migrations.RunPython.noop,
atomic=True,
),
]

View file

@ -26,11 +26,6 @@ class UserGroup(Group):
"model": "contact", "model": "contact",
"permissions": ["change_contact"], "permissions": ["change_contact"],
}, },
{
"app_label": "registrar",
"model": "domaininformation",
"permissions": ["change_domaininformation"],
},
{ {
"app_label": "registrar", "app_label": "registrar",
"model": "domainrequest", "model": "domainrequest",

View file

@ -2026,8 +2026,8 @@ class TestDomainInformationAdmin(TestCase):
# Get the other contact # Get the other contact
other_contact = domain_info.other_contacts.all().first() other_contact = domain_info.other_contacts.all().first()
p = "userpass" p = "adminpass"
self.client.login(username="staffuser", password=p) self.client.login(username="superuser", password=p)
response = self.client.get( response = self.client.get(
"/admin/registrar/domaininformation/{}/change/".format(domain_info.pk), "/admin/registrar/domaininformation/{}/change/".format(domain_info.pk),
@ -2071,8 +2071,8 @@ class TestDomainInformationAdmin(TestCase):
domain_request.approve() domain_request.approve()
domain_info = DomainInformation.objects.filter(domain=domain_request.approved_domain).get() domain_info = DomainInformation.objects.filter(domain=domain_request.approved_domain).get()
p = "userpass" p = "adminpass"
self.client.login(username="staffuser", password=p) self.client.login(username="superuser", password=p)
response = self.client.get( response = self.client.get(
"/admin/registrar/domaininformation/{}/change/".format(domain_info.pk), "/admin/registrar/domaininformation/{}/change/".format(domain_info.pk),
follow=True, follow=True,

View file

@ -34,7 +34,6 @@ class TestGroups(TestCase):
"view_logentry", "view_logentry",
"change_contact", "change_contact",
"view_domain", "view_domain",
"change_domaininformation",
"add_domaininvitation", "add_domaininvitation",
"view_domaininvitation", "view_domaininvitation",
"change_domainrequest", "change_domainrequest",