From dc068eba6f577b0ec37f5830df5c19f4ff2e85cf Mon Sep 17 00:00:00 2001 From: Victor Chang Date: Thu, 21 Apr 2016 16:41:43 +0100 Subject: Deleting lock screen clears all CA approvals When both screenlocks for profile user and parent user has been removed (both set to none), remove CA approvls on that user, and show the "Certificate authority installed" notification. Bug: 28161447 Change-Id: I3c78dc5cfcdf7c02c91b64abe44984ee790d8f3e --- .../devicepolicy/DevicePolicyManagerService.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index d3d05f3ca36a..6f6991cbd4db 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -4170,6 +4170,23 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } } + private void removeCaApprovalsIfNeeded(int userId) { + for (UserInfo userInfo : mUserManager.getProfiles(userId)) { + boolean isSecure = mLockPatternUtils.isSecure(userInfo.id); + if (userInfo.isManagedProfile()){ + isSecure |= mLockPatternUtils.isSecure(getProfileParentId(userInfo.id)); + } + if (!isSecure) { + synchronized (this) { + getUserData(userInfo.id).mAcceptedCaCertificates.clear(); + saveSettingsLocked(userInfo.id); + } + + new MonitoringCertNotificationTask().execute(userInfo.id); + } + } + } + @Override public boolean installCaCert(ComponentName admin, byte[] certBuffer) throws RemoteException { enforceCanManageCaCerts(admin); @@ -4596,6 +4613,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { DeviceAdminReceiver.ACTION_PASSWORD_CHANGED, DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD, userHandle); } + removeCaApprovalsIfNeeded(userHandle); } finally { mInjector.binderRestoreCallingIdentity(ident); } -- cgit v1.2.3-59-g8ed1b