diff --git a/tests/mdm/test_dep_enrollment_public_views.py b/tests/mdm/test_dep_enrollment_public_views.py
index 0f23b5d9f..aae428f8e 100644
--- a/tests/mdm/test_dep_enrollment_public_views.py
+++ b/tests/mdm/test_dep_enrollment_public_views.py
@@ -313,7 +313,8 @@ def test_dep_web_enroll_blocked(self, vicsp, post_event):
def test_dep_web_enroll(self, vicsp, post_event):
vicsp.side_effect = lambda d: d
- session, _, _ = force_dep_enrollment_session(self.mbu, realm_user=True)
+ display_name = get_random_string(12)
+ session, _, _ = force_dep_enrollment_session(self.mbu, realm_user=True, enrollment_display_name=display_name)
enrollment = session.dep_enrollment
serial_number = get_random_string(10)
udid = str(uuid.uuid4()).upper()
@@ -348,3 +349,4 @@ def test_dep_web_enroll(self, vicsp, post_event):
_, profile_data = verify_signed_payload(response.content)
profile = plistlib.loads(profile_data)
self.assertEqual(profile["PayloadIdentifier"], "zentral.mdm")
+ self.assertEqual(profile["PayloadOrganization"], display_name)
diff --git a/tests/mdm/test_ota_enrollment_public_views.py b/tests/mdm/test_ota_enrollment_public_views.py
index f8d569790..99b71f9ed 100644
--- a/tests/mdm/test_ota_enrollment_public_views.py
+++ b/tests/mdm/test_ota_enrollment_public_views.py
@@ -72,6 +72,7 @@ def test_ota_enrollment_enroll_redirect(self, post_event):
_, profile_data = verify_signed_payload(response.content)
profile = plistlib.loads(profile_data)
self.assertEqual(profile["PayloadContent"]["URL"], "https://zentral/public/mdm/ota_session_enroll/")
+ self.assertEqual(profile["PayloadOrganization"], enrollment.display_name)
# ota_enroll
diff --git a/tests/mdm/test_setup_dep_enrollment.py b/tests/mdm/test_setup_dep_enrollment.py
index cebe647f6..19c1a593c 100644
--- a/tests/mdm/test_setup_dep_enrollment.py
+++ b/tests/mdm/test_setup_dep_enrollment.py
@@ -66,11 +66,13 @@ def test_create_dep_enrollment_get(self):
def test_create_dep_enrollment_os_version_errors(self):
self._login("mdm.add_depenrollment", "mdm.view_depenrollment")
name = get_random_string(64)
+ display_name = get_random_string(12)
push_certificate = force_push_certificate()
scep_config = force_scep_config()
dep_virtual_server = force_dep_virtual_server()
response = self.client.post(reverse("mdm:create_dep_enrollment"),
{"de-name": name,
+ "de-display_name": display_name,
"de-scep_config": scep_config.pk,
"de-push_certificate": push_certificate.pk,
"de-virtual_server": dep_virtual_server.pk,
@@ -226,11 +228,13 @@ def test_create_dep_enrollment_post(self, from_dep_virtual_server):
from_dep_virtual_server.return_value = client
self._login("mdm.add_depenrollment", "mdm.view_depenrollment")
name = get_random_string(64)
+ display_name = get_random_string(12)
push_certificate = force_push_certificate()
scep_config = force_scep_config()
dep_virtual_server = force_dep_virtual_server()
response = self.client.post(reverse("mdm:create_dep_enrollment"),
{"de-name": name,
+ "de-display_name": display_name,
"de-scep_config": scep_config.pk,
"de-scep_verification": "",
"de-push_certificate": push_certificate.pk,
@@ -249,11 +253,13 @@ def test_create_dep_enrollment_post(self, from_dep_virtual_server):
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "mdm/depenrollment_detail.html")
self.assertContains(response, name)
+ self.assertContains(response, display_name)
self.assertContains(response, push_certificate.name)
self.assertContains(response, scep_config.name)
self.assertContains(response, "without CSR verification")
enrollment = response.context["object"]
self.assertEqual(enrollment.name, name)
+ self.assertEqual(enrollment.display_name, display_name)
self.assertEqual(enrollment.push_certificate, push_certificate)
self.assertEqual(enrollment.scep_config, scep_config)
self.assertEqual(enrollment.ios_max_version, "")
@@ -294,6 +300,7 @@ def test_view_dep_enrollment_no_extra_perms(self):
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "mdm/depenrollment_detail.html")
self.assertContains(response, enrollment.name)
+ self.assertContains(response, enrollment.display_name)
self.assertContains(response, enrollment.push_certificate.name)
self.assertNotContains(response, enrollment.push_certificate.get_absolute_url())
self.assertContains(response, enrollment.scep_config.name)
@@ -419,8 +426,10 @@ def test_update_dep_enrollment_post(self, from_dep_virtual_server):
from_dep_virtual_server.return_value = client
self._login("mdm.change_depenrollment", "mdm.view_depenrollment")
new_name = get_random_string(12)
+ new_display_name = get_random_string(12)
response = self.client.post(reverse("mdm:update_dep_enrollment", args=(enrollment.pk,)),
{"de-name": new_name,
+ "de-display_name": new_display_name,
"de-realm": realm.pk,
"de-scep_config": enrollment.scep_config.pk,
"de-scep_verification": "on",
@@ -441,12 +450,14 @@ def test_update_dep_enrollment_post(self, from_dep_virtual_server):
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "mdm/depenrollment_detail.html")
self.assertContains(response, new_name)
+ self.assertContains(response, new_display_name)
self.assertContains(response, realm.name)
self.assertContains(response, enrollment.push_certificate.name)
self.assertContains(response, enrollment.scep_config.name)
self.assertContains(response, "with CSR verification")
enrollment = response.context["object"]
self.assertEqual(enrollment.name, new_name)
+ self.assertEqual(enrollment.display_name, new_display_name)
self.assertEqual(enrollment.realm, realm)
self.assertEqual(enrollment.macos_min_version, "13.3.1")
self.assertEqual(enrollment.skip_setup_items, ["AppleID"])
@@ -482,6 +493,7 @@ def test_update_dep_enrollment_post_remove_admin(self, from_dep_virtual_server):
self._login("mdm.change_depenrollment", "mdm.view_depenrollment")
response = self.client.post(reverse("mdm:update_dep_enrollment", args=(enrollment.pk,)),
{"de-name": enrollment.name,
+ "de-display_name": enrollment.display_name,
"de-realm": realm.pk,
"de-scep_config": enrollment.scep_config.pk,
"de-push_certificate": enrollment.push_certificate.pk,
@@ -514,6 +526,7 @@ def test_update_dep_enrollment_post_update_admin_keep_pwd(self, from_dep_virtual
self._login("mdm.change_depenrollment", "mdm.view_depenrollment")
response = self.client.post(reverse("mdm:update_dep_enrollment", args=(enrollment.pk,)),
{"de-name": enrollment.name,
+ "de-display_name": enrollment.display_name,
"de-realm": realm.pk,
"de-scep_config": enrollment.scep_config.pk,
"de-push_certificate": enrollment.push_certificate.pk,
@@ -549,6 +562,7 @@ def test_update_dep_enrollment_post_update_admin_update_pwd(self, from_dep_virtu
self._login("mdm.change_depenrollment", "mdm.view_depenrollment")
response = self.client.post(reverse("mdm:update_dep_enrollment", args=(enrollment.pk,)),
{"de-name": enrollment.name,
+ "de-display_name": enrollment.display_name,
"de-realm": realm.pk,
"de-scep_config": enrollment.scep_config.pk,
"de-push_certificate": enrollment.push_certificate.pk,
diff --git a/tests/mdm/test_setup_ota_enrollment.py b/tests/mdm/test_setup_ota_enrollment.py
index c874c7f6b..610fecbde 100644
--- a/tests/mdm/test_setup_ota_enrollment.py
+++ b/tests/mdm/test_setup_ota_enrollment.py
@@ -62,10 +62,12 @@ def test_create_ota_enrollment_get(self):
def test_create_ota_enrollment_post(self):
self._login("mdm.add_otaenrollment", "mdm.view_otaenrollment")
name = get_random_string(64)
+ display_name = get_random_string(12)
push_certificate = force_push_certificate()
scep_config = force_scep_config()
response = self.client.post(reverse("mdm:create_ota_enrollment"),
{"oe-name": name,
+ "oe-display_name": display_name,
"oe-scep_config": scep_config.pk,
"oe-scep_verification": "",
"oe-push_certificate": push_certificate.pk,
@@ -74,11 +76,13 @@ def test_create_ota_enrollment_post(self):
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "mdm/otaenrollment_detail.html")
self.assertContains(response, name)
+ self.assertContains(response, display_name)
self.assertContains(response, push_certificate.name)
self.assertContains(response, scep_config.name)
self.assertContains(response, "without CSR verification")
enrollment = response.context["object"]
self.assertEqual(enrollment.name, name)
+ self.assertEqual(enrollment.display_name, display_name)
self.assertEqual(enrollment.push_certificate, push_certificate)
self.assertEqual(enrollment.scep_config, scep_config)
@@ -101,6 +105,7 @@ def test_view_ota_enrollment_no_extra_perms(self):
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "mdm/otaenrollment_detail.html")
self.assertContains(response, enrollment.name)
+ self.assertContains(response, enrollment.display_name)
self.assertContains(response, enrollment.push_certificate.name)
self.assertNotContains(response, enrollment.push_certificate.get_absolute_url())
self.assertContains(response, enrollment.scep_config.name)
@@ -170,8 +175,10 @@ def test_update_ota_enrollment_post(self):
enrollment = force_ota_enrollment(self.mbu)
self._login("mdm.change_otaenrollment", "mdm.view_otaenrollment")
new_name = get_random_string(64)
+ new_display_name = get_random_string(12)
response = self.client.post(reverse("mdm:update_ota_enrollment", args=(enrollment.pk,)),
{"oe-name": new_name,
+ "oe-display_name": new_display_name,
"oe-scep_config": enrollment.scep_config.pk,
"oe-scep_verification": "on",
"oe-push_certificate": enrollment.push_certificate.pk,
@@ -180,11 +187,13 @@ def test_update_ota_enrollment_post(self):
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "mdm/otaenrollment_detail.html")
self.assertContains(response, new_name)
+ self.assertContains(response, new_display_name)
self.assertContains(response, enrollment.push_certificate.name)
self.assertContains(response, enrollment.scep_config.name)
self.assertContains(response, "with CSR verification")
enrollment = response.context["object"]
self.assertEqual(enrollment.name, new_name)
+ self.assertEqual(enrollment.display_name, new_display_name)
# revoke OTA enrollment
diff --git a/tests/mdm/test_setup_user_enrollment.py b/tests/mdm/test_setup_user_enrollment.py
index 8a4b26926..fc6d40a62 100644
--- a/tests/mdm/test_setup_user_enrollment.py
+++ b/tests/mdm/test_setup_user_enrollment.py
@@ -71,17 +71,20 @@ def test_create_user_enrollment_no_realm(self):
follow=True)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "mdm/userenrollment_form.html")
+ self.assertFormError(response.context["user_enrollment_form"], "display_name", "This field is required.")
self.assertFormError(response.context["user_enrollment_form"], "realm", "This field is required")
def test_create_user_enrollment_post(self):
self._login("mdm.add_userenrollment", "mdm.view_userenrollment")
realm = force_realm()
name = get_random_string(64)
+ display_name = get_random_string(12)
push_certificate = force_push_certificate()
scep_config = force_scep_config()
response = self.client.post(reverse("mdm:create_user_enrollment"),
{"ue-realm": realm.pk,
"ue-name": name,
+ "ue-display_name": display_name,
"ue-scep_config": scep_config.pk,
"ue-scep_verification": "",
"ue-push_certificate": push_certificate.pk,
@@ -90,11 +93,13 @@ def test_create_user_enrollment_post(self):
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "mdm/userenrollment_detail.html")
self.assertContains(response, name)
+ self.assertContains(response, display_name)
self.assertContains(response, push_certificate.name)
self.assertContains(response, scep_config.name)
self.assertContains(response, "without CSR verification")
enrollment = response.context["object"]
self.assertEqual(enrollment.name, name)
+ self.assertEqual(enrollment.display_name, display_name)
self.assertEqual(enrollment.push_certificate, push_certificate)
self.assertEqual(enrollment.scep_config, scep_config)
@@ -117,6 +122,7 @@ def test_view_user_enrollment_no_extra_perms(self):
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "mdm/userenrollment_detail.html")
self.assertContains(response, enrollment.name)
+ self.assertContains(response, enrollment.display_name)
self.assertContains(response, enrollment.push_certificate.name)
self.assertNotContains(response, enrollment.push_certificate.get_absolute_url())
self.assertContains(response, enrollment.scep_config.name)
@@ -159,9 +165,11 @@ def test_update_user_enrollment_post(self):
self._login("mdm.change_userenrollment", "mdm.view_userenrollment")
new_realm = force_realm()
new_name = get_random_string(64)
+ new_display_name = get_random_string(12)
response = self.client.post(reverse("mdm:update_user_enrollment", args=(enrollment.pk,)),
{"ue-realm": new_realm.pk,
"ue-name": new_name,
+ "ue-display_name": new_display_name,
"ue-scep_config": enrollment.scep_config.pk,
"ue-scep_verification": "on",
"ue-push_certificate": enrollment.push_certificate.pk,
@@ -171,12 +179,14 @@ def test_update_user_enrollment_post(self):
self.assertTemplateUsed(response, "mdm/userenrollment_detail.html")
self.assertContains(response, new_realm.name)
self.assertContains(response, new_name)
+ self.assertContains(response, new_display_name)
self.assertContains(response, enrollment.push_certificate.name)
self.assertContains(response, enrollment.scep_config.name)
self.assertContains(response, "with CSR verification")
enrollment = response.context["object"]
self.assertEqual(enrollment.realm, new_realm)
self.assertEqual(enrollment.name, new_name)
+ self.assertEqual(enrollment.display_name, new_display_name)
# list User enrollments
diff --git a/tests/mdm/test_user_enrollment_public_views.py b/tests/mdm/test_user_enrollment_public_views.py
index 85b398b4a..ceec35385 100644
--- a/tests/mdm/test_user_enrollment_public_views.py
+++ b/tests/mdm/test_user_enrollment_public_views.py
@@ -93,7 +93,8 @@ def test_enroll_user_invalid_access_token(self, post_event):
self.assertAbort(post_event, "Invalid access token")
def test_enroll_user(self, post_event):
- enrollment = force_user_enrollment(self.mbu, self.realm)
+ display_name = get_random_string(12)
+ enrollment = force_user_enrollment(self.mbu, self.realm, enrollment_display_name=display_name)
_, realm_user = force_realm_user(self.realm)
enrollment_session = UserEnrollmentSession.objects.create_from_user_enrollment(enrollment)
enrollment_session.set_account_driven_authenticated_status(realm_user)
@@ -105,6 +106,7 @@ def test_enroll_user(self, post_event):
self.assertSuccess(post_event)
_, data = verify_signed_payload(response.content)
payload = plistlib.loads(data)
+ self.assertEqual(payload["PayloadOrganization"], display_name)
mdm_payload = [p for p in payload["PayloadContent"] if p["PayloadType"] == "com.apple.mdm"][0]
self.assertEqual(mdm_payload["AssignedManagedAppleID"], realm_user.email)
self.assertEqual(mdm_payload["EnrollmentMode"], "BYOD")
diff --git a/tests/mdm/utils.py b/tests/mdm/utils.py
index a9a5e1670..27db28a47 100644
--- a/tests/mdm/utils.py
+++ b/tests/mdm/utils.py
@@ -211,10 +211,11 @@ def force_dep_device(
# enrollments
-def force_dep_enrollment(mbu, push_certificate=None):
+def force_dep_enrollment(mbu, push_certificate=None, display_name=None):
if push_certificate is None:
push_certificate = force_push_certificate()
return DEPEnrollment.objects.create(
+ display_name=display_name or get_random_string(12),
name=get_random_string(12),
uuid=uuid.uuid4(),
push_certificate=push_certificate,
@@ -225,23 +226,25 @@ def force_dep_enrollment(mbu, push_certificate=None):
)
-def force_ota_enrollment(mbu, realm=None):
+def force_ota_enrollment(mbu, realm=None, display_name=None):
return OTAEnrollment.objects.create(
push_certificate=force_push_certificate(),
scep_config=force_scep_config(),
name=get_random_string(12),
enrollment_secret=EnrollmentSecret.objects.create(meta_business_unit=mbu),
realm=realm,
+ display_name=display_name or get_random_string(12),
)
-def force_user_enrollment(mbu, realm=None):
+def force_user_enrollment(mbu, realm=None, enrollment_display_name=None):
return UserEnrollment.objects.create(
push_certificate=force_push_certificate(),
realm=realm or force_realm(),
scep_config=force_scep_config(),
name=get_random_string(12),
- enrollment_secret=EnrollmentSecret.objects.create(meta_business_unit=mbu)
+ enrollment_secret=EnrollmentSecret.objects.create(meta_business_unit=mbu),
+ display_name=enrollment_display_name or get_random_string(12)
)
@@ -304,8 +307,9 @@ def force_dep_enrollment_session(
realm_user=False,
realm_user_email=None,
realm_user_username=None,
+ enrollment_display_name=None,
):
- dep_enrollment = force_dep_enrollment(mbu, push_certificate)
+ dep_enrollment = force_dep_enrollment(mbu, push_certificate, display_name=enrollment_display_name)
if realm_user:
dep_enrollment.use_realm_user = True
dep_enrollment.username_pattern = DEPEnrollment.UsernamePattern.DEVICE_USERNAME
diff --git a/zentral/contrib/mdm/forms.py b/zentral/contrib/mdm/forms.py
index d0c112570..ef9f011aa 100644
--- a/zentral/contrib/mdm/forms.py
+++ b/zentral/contrib/mdm/forms.py
@@ -34,7 +34,7 @@
class OTAEnrollmentForm(forms.ModelForm):
class Meta:
model = OTAEnrollment
- fields = ("name", "realm", "push_certificate",
+ fields = ("name", "display_name", "realm", "push_certificate",
"scep_config", "scep_verification",
"blueprint")
@@ -42,7 +42,7 @@ class Meta:
class UserEnrollmentForm(forms.ModelForm):
class Meta:
model = UserEnrollment
- fields = ("name", "realm", "push_certificate",
+ fields = ("name", "display_name", "realm", "push_certificate",
"scep_config", "scep_verification",
"blueprint")
@@ -373,7 +373,7 @@ def __init__(self, *args, **kwargs):
required=False
)
field_order.append(key)
- field_order.extend(["realm", "use_realm_user", "username_pattern", "realm_user_is_admin",
+ field_order.extend(["display_name", "realm", "use_realm_user", "username_pattern", "realm_user_is_admin",
"admin_full_name", "admin_short_name", "admin_password",
"ios_max_version", "ios_min_version", "macos_max_version", "macos_min_version"])
self.order_fields(field_order)
diff --git a/zentral/contrib/mdm/migrations/0078_depenrollment_display_name_and_more.py b/zentral/contrib/mdm/migrations/0078_depenrollment_display_name_and_more.py
new file mode 100644
index 000000000..c2508ee64
--- /dev/null
+++ b/zentral/contrib/mdm/migrations/0078_depenrollment_display_name_and_more.py
@@ -0,0 +1,31 @@
+# Generated by Django 4.2.11 on 2024-05-21 09:29
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('mdm', '0077_alter_scepconfig_challenge_type'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='depenrollment',
+ name='display_name',
+ field=models.CharField(default='Zentral MDM',
+ help_text='Name displayed in the device settings', max_length=128),
+ ),
+ migrations.AddField(
+ model_name='otaenrollment',
+ name='display_name',
+ field=models.CharField(default='Zentral MDM',
+ help_text='Name displayed in the device settings', max_length=128),
+ ),
+ migrations.AddField(
+ model_name='userenrollment',
+ name='display_name',
+ field=models.CharField(default='Zentral MDM',
+ help_text='Name displayed in the device settings', max_length=128),
+ ),
+ ]
diff --git a/zentral/contrib/mdm/models.py b/zentral/contrib/mdm/models.py
index 460017b79..5600ba6b6 100644
--- a/zentral/contrib/mdm/models.py
+++ b/zentral/contrib/mdm/models.py
@@ -1214,9 +1214,6 @@ def get_urlsafe_serial_number(self):
if serial_number:
return MetaMachine(serial_number).get_urlsafe_serial_number()
- def get_payload_name(self):
- return "Zentral - {prefix} Enrollment SCEP".format(prefix=" - ".join(self.get_prefix().split("$")))
-
def is_completed(self):
return self.status == self.COMPLETED
@@ -1246,6 +1243,8 @@ def device_enrolled_at(self):
class MDMEnrollment(models.Model):
+ display_name = models.CharField(max_length=128, default="Zentral MDM",
+ help_text="Name displayed in the device settings")
push_certificate = models.ForeignKey(PushCertificate, on_delete=models.PROTECT)
scep_config = models.ForeignKey(SCEPConfig, on_delete=models.PROTECT)
diff --git a/zentral/contrib/mdm/payloads.py b/zentral/contrib/mdm/payloads.py
index 5b444d319..c0c1043dd 100644
--- a/zentral/contrib/mdm/payloads.py
+++ b/zentral/contrib/mdm/payloads.py
@@ -57,7 +57,8 @@ def build_configuration_profile_response(data, filename):
def build_profile(display_name, suffix, content,
- payload_type="Configuration", payload_description=None,
+ payload_type="Configuration",
+ payload_description=None, payload_organization=None,
sign=True, encrypt=False):
profile = {"PayloadUUID": generate_payload_uuid(),
"PayloadIdentifier": get_payload_identifier(suffix),
@@ -67,13 +68,22 @@ def build_profile(display_name, suffix, content,
"PayloadContent": content}
if payload_description:
profile["PayloadDescription"] = payload_description
+ if payload_organization:
+ profile["PayloadOrganization"] = payload_organization
data = plistlib.dumps(profile)
if sign:
data = sign_payload(data)
return data
-def build_payload(payload_type, payload_display_name, suffix, content, payload_version=1, encapsulate_content=False):
+def build_payload(
+ payload_type,
+ payload_display_name,
+ suffix,
+ content,
+ payload_version=1,
+ encapsulate_content=False,
+):
payload = {"PayloadUUID": generate_payload_uuid(),
"PayloadType": payload_type,
"PayloadDisplayName": payload_display_name,
@@ -92,7 +102,7 @@ def build_root_ca_payloads():
root_certificate = split_certificate_chain(settings["api"]["tls_fullchain"])[-1]
return [
build_payload("com.apple.security.pem",
- "Zentral - root CA", "tls-root-ca-cert",
+ "root CA", "tls-root-ca-cert",
root_certificate.encode("utf-8"),
encapsulate_content=True)
]
@@ -113,7 +123,7 @@ def build_scep_payload(enrollment_session):
scep_payload = {"Subject": subject}
update_scep_payload(scep_payload, enrollment_session.get_enrollment().scep_config)
return build_payload("com.apple.security.scep",
- enrollment_session.get_payload_name(),
+ "SCEP",
"scep",
scep_payload,
encapsulate_content=True)
@@ -122,11 +132,13 @@ def build_scep_payload(enrollment_session):
def build_profile_service_configuration_profile(ota_obj):
if isinstance(ota_obj, OTAEnrollmentSession):
url_path = reverse("mdm_public:ota_session_enroll")
+ display_name = ota_obj.get_enrollment().display_name
elif isinstance(ota_obj, OTAEnrollment):
url_path = reverse("mdm_public:ota_enroll")
+ display_name = ota_obj.display_name
else:
raise ValueError("ota_obj not an OTAEnrollment nor an OTAEnrollmentSession")
- return build_profile("Zentral - OTA MDM Enrollment",
+ return build_profile(display_name,
"profile-service",
{"URL": "{}{}".format(settings["api"]["tls_hostname"], url_path),
"DeviceAttributes": ["UDID",
@@ -137,12 +149,16 @@ def build_profile_service_configuration_profile(ota_obj):
"IMEI"],
"Challenge": ota_obj.enrollment_secret.secret},
payload_type="Profile Service",
- payload_description="Install this profile to enroll your device with Zentral")
+ payload_description=f"Install this profile to enroll your device with {display_name}",
+ payload_organization=display_name)
def build_ota_scep_configuration_profile(ota_enrollment_session):
- return build_profile(ota_enrollment_session.get_payload_name(), "scep",
- [build_scep_payload(ota_enrollment_session)])
+ return build_profile(
+ ota_enrollment_session.get_enrollment().display_name,
+ "scep",
+ [build_scep_payload(ota_enrollment_session)],
+ )
def build_mdm_configuration_profile(enrollment_session):
@@ -173,10 +189,16 @@ def build_mdm_configuration_profile(enrollment_session):
payloads.extend([
scep_payload,
build_payload("com.apple.mdm",
- "Zentral - MDM",
+ "MDM",
"mdm", mdm_config)
])
- return build_profile("Zentral - MDM enrollment", "mdm", payloads)
+
+ display_name = enrollment_session.get_enrollment().display_name
+ return build_profile(
+ display_name,
+ "mdm", payloads,
+ payload_organization=display_name,
+ )
def substitute_variables(obj, enrollment_session, enrolled_user=None):
diff --git a/zentral/contrib/mdm/templates/mdm/depenrollment_detail.html b/zentral/contrib/mdm/templates/mdm/depenrollment_detail.html
index 77f51edb0..a4fd2ac72 100644
--- a/zentral/contrib/mdm/templates/mdm/depenrollment_detail.html
+++ b/zentral/contrib/mdm/templates/mdm/depenrollment_detail.html
@@ -30,6 +30,10 @@
[DEP]
Configuration
+
+ Display name |
+ {{ object.display_name }} |
+
Push certificate |
diff --git a/zentral/contrib/mdm/templates/mdm/otaenrollment_detail.html b/zentral/contrib/mdm/templates/mdm/otaenrollment_detail.html
index 1c9a6855e..612a4e731 100644
--- a/zentral/contrib/mdm/templates/mdm/otaenrollment_detail.html
+++ b/zentral/contrib/mdm/templates/mdm/otaenrollment_detail.html
@@ -34,6 +34,10 @@ OTA Enrollment
Configuration
+
+ Display name |
+ {{ object.display_name }} |
+
Push certificate |
diff --git a/zentral/contrib/mdm/templates/mdm/userenrollment_detail.html b/zentral/contrib/mdm/templates/mdm/userenrollment_detail.html
index d68a88827..72cecc42c 100644
--- a/zentral/contrib/mdm/templates/mdm/userenrollment_detail.html
+++ b/zentral/contrib/mdm/templates/mdm/userenrollment_detail.html
@@ -26,6 +26,10 @@ [USER]
{% with object.enrollment_secret as secret %}
+
+ Display name |
+ {{ object.display_name }} |
+
Push certificate |
| | |