fix(magic): show backend MDM status even when iPhone is not connected via USB

This commit is contained in:
chahinebrini 2026-06-18 05:16:22 +02:00
parent c1f5f5804d
commit cb6dd0555a

View File

@ -62,9 +62,8 @@
<span>Verbinde dein iPhone mit USB, um den Schutz zu vervollständigen.</span> <span>Verbinde dein iPhone mit USB, um den Schutz zu vervollständigen.</span>
</div> </div>
<!-- Split backend / local cards when USB-connected --> <!-- Backend-MDM always visible; local USB only when connected -->
<div <div
v-else
class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-4 relative" class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-4 relative"
> >
<!-- Animated sync overlay --> <!-- Animated sync overlay -->
@ -129,7 +128,10 @@
</div> </div>
<!-- Local USB device card --> <!-- Local USB device card -->
<div class="rounded-xl bg-gray-50 dark:bg-gray-800/50 p-4"> <div
v-if="isConnected"
class="rounded-xl bg-gray-50 dark:bg-gray-800/50 p-4"
>
<div class="flex items-center justify-between mb-3"> <div class="flex items-center justify-between mb-3">
<span class="text-xs font-bold uppercase tracking-wide text-gray-500 dark:text-gray-400"> <span class="text-xs font-bold uppercase tracking-wide text-gray-500 dark:text-gray-400">
Lokales USB-Gerät Lokales USB-Gerät
@ -382,17 +384,20 @@ const mismatches = computed(() => {
}); });
const isProtectionIncomplete = computed(() => { const isProtectionIncomplete = computed(() => {
if (!props.isConnected || !props.iphone) return true;
if (mdmState.value.loading || !mdmState.value.data) return false; if (mdmState.value.loading || !mdmState.value.data) return false;
const backend = mdmState.value.data; const backend = mdmState.value.data;
if (!backend.enrolled) return true; if (!backend.enrolled) return true;
if (!backend.supervised) return true; if (!backend.supervised) return true;
if (!backend.lockProfileInstalled) return true; if (!backend.lockProfileInstalled) return true;
if (!props.iphone.isSupervised) return true;
if (!localEnrollment.value) return true; // Local checks only matter when an iPhone is actually connected via USB.
if (!localLock.value) return true; if (props.isConnected && props.iphone) {
if (!localApp.value) return true; if (!props.iphone.isSupervised) return true;
if (!localEnrollment.value) return true;
if (!localLock.value) return true;
if (!localApp.value) return true;
}
return false; return false;
}); });
@ -400,27 +405,29 @@ const isProtectionIncomplete = computed(() => {
const showIncompleteHint = computed(() => isProtectionIncomplete.value); const showIncompleteHint = computed(() => isProtectionIncomplete.value);
const incompleteMessage = computed(() => { const incompleteMessage = computed(() => {
if (!props.isConnected || !props.iphone) {
return "Verbinde dein iPhone per USB, damit wir den lokalen Schutz prüfen können.";
}
if (!mdmState.value.data?.enrolled) { if (!mdmState.value.data?.enrolled) {
return "Das Gerät ist im Backend noch nicht MDM-enrolled."; return "Das Gerät ist im Backend noch nicht MDM-enrolled.";
} }
if (!props.iphone.isSupervised) { if (!mdmState.value.data?.supervised) {
return "Das iPhone ist nicht supervised."; return "Das Gerät ist im Backend nicht supervised.";
}
if (!localEnrollment.value) {
return "Das Enrollment-Profil fehlt auf dem iPhone.";
}
if (!localLock.value) {
return "Das Lock-Profil fehlt auf dem iPhone.";
}
if (!localApp.value) {
return "Die ReBreak App fehlt auf dem iPhone.";
} }
if (!mdmState.value.data?.lockProfileInstalled) { if (!mdmState.value.data?.lockProfileInstalled) {
return "Das Lock-Profil ist im Backend noch nicht als aktiv markiert."; return "Das Lock-Profil ist im Backend noch nicht als aktiv markiert.";
} }
if (props.isConnected && props.iphone) {
if (!props.iphone.isSupervised) {
return "Das iPhone ist nicht supervised.";
}
if (!localEnrollment.value) {
return "Das Enrollment-Profil fehlt auf dem iPhone.";
}
if (!localLock.value) {
return "Das Lock-Profil fehlt auf dem iPhone.";
}
if (!localApp.value) {
return "Die ReBreak App fehlt auf dem iPhone.";
}
}
return "Schutz ist noch unvollständig."; return "Schutz ist noch unvollständig.";
}); });