Merge "Fix lock task clearing for affiliated users" into udc-dev

This commit is contained in:
Kholoud Mohamed
2023-04-24 14:48:58 +00:00
committed by Android (Google) Code Review

View File

@@ -14957,18 +14957,34 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
continue;
}
final List<String> lockTaskPackages = getUserData(userId).mLockTaskPackages;
// TODO(b/278438525): handle in the policy engine
if (!lockTaskPackages.isEmpty()) {
Slogf.d(LOG_TAG,
"User id " + userId + " not affiliated. Clearing lock task packages");
setLockTaskPackagesLocked(userId, Collections.<String>emptyList());
}
final int lockTaskFeatures = getUserData(userId).mLockTaskFeatures;
if (lockTaskFeatures != DevicePolicyManager.LOCK_TASK_FEATURE_NONE){
Slogf.d(LOG_TAG,
"User id " + userId + " not affiliated. Clearing lock task features");
setLockTaskFeaturesLocked(userId, DevicePolicyManager.LOCK_TASK_FEATURE_NONE);
if (isPolicyEngineForFinanceFlagEnabled()) {
Map<EnforcingAdmin, PolicyValue<LockTaskPolicy>> policies =
mDevicePolicyEngine.getLocalPoliciesSetByAdmins(
PolicyDefinition.LOCK_TASK, userId);
Set<EnforcingAdmin> admins = new HashSet<>(policies.keySet());
for (EnforcingAdmin admin : admins) {
if (admin.hasAuthority(EnforcingAdmin.DPC_AUTHORITY)) {
mDevicePolicyEngine.removeLocalPolicy(
PolicyDefinition.LOCK_TASK, admin, userId);
}
}
} else {
final List<String> lockTaskPackages = getUserData(userId).mLockTaskPackages;
// TODO(b/278438525): handle in the policy engine
if (!lockTaskPackages.isEmpty()) {
Slogf.d(LOG_TAG,
"User id " + userId
+ " not affiliated. Clearing lock task packages");
setLockTaskPackagesLocked(userId, Collections.<String>emptyList());
}
final int lockTaskFeatures = getUserData(userId).mLockTaskFeatures;
if (lockTaskFeatures != DevicePolicyManager.LOCK_TASK_FEATURE_NONE) {
Slogf.d(LOG_TAG,
"User id " + userId
+ " not affiliated. Clearing lock task features");
setLockTaskFeaturesLocked(userId,
DevicePolicyManager.LOCK_TASK_FEATURE_NONE);
}
}
}
});