diff options
| author | Pavel Grafov <pgrafov@google.com> | 2017-12-15 13:47:55 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-12-15 13:47:55 +0000 |
| commit | d1319bb059fbf6f30cfaf37f236f82933ce61291 (patch) | |
| tree | 5988c4a151a344e34ecee1b9f3d37e7d142ca632 /core/java/android | |
| parent | 5c9d80199e48322ab9939bc78d3ffeb224817a4c (diff) | |
| parent | c4f87e9ceb4d5ce78c1663912bc166e0d41554aa (diff) | |
Merge "Introduce DISALLOW_UNIFIED_PASSWORD."
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/admin/DevicePolicyManager.java | 22 | ||||
| -rw-r--r-- | core/java/android/app/admin/IDevicePolicyManager.aidl | 1 | ||||
| -rw-r--r-- | core/java/android/os/UserManager.java | 19 |
3 files changed, 42 insertions, 0 deletions
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 70153c7d7f6b..89df421efcc1 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -2665,6 +2665,28 @@ public class DevicePolicyManager { } /** + * When called by a profile owner of a managed profile returns true if the profile uses unified + * challenge with its parent user. + * + * <strong>Note: This method is not concerned with password quality and will return false if + * the profile has empty password as a separate challenge. + * + * @param admin Which {@link DeviceAdminReceiver} this request is associated with. + * @throws SecurityException if {@code admin} is not a profile owner of a managed profile. + * @see UserManager#DISALLOW_UNIFIED_PASSWORD + */ + public boolean isUsingUnifiedPassword(@NonNull ComponentName admin) { + if (mService != null) { + try { + return mService.isUsingUnifiedPassword(admin); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + return true; + } + + /** * Determine whether the current profile password the user has set is sufficient * to meet the policy requirements (e.g. quality, minimum length) that have been * requested by the admins of the parent user and its profiles. diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl index 2e5359492dab..912820818a78 100644 --- a/core/java/android/app/admin/IDevicePolicyManager.aidl +++ b/core/java/android/app/admin/IDevicePolicyManager.aidl @@ -80,6 +80,7 @@ interface IDevicePolicyManager { boolean isActivePasswordSufficient(int userHandle, boolean parent); boolean isProfileActivePasswordSufficientForParent(int userHandle); + boolean isUsingUnifiedPassword(in ComponentName admin); int getCurrentFailedPasswordAttempts(int userHandle, boolean parent); int getProfileWithMinimumFailedPasswordsForWipe(int userHandle, boolean parent); diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index fb60bbb483b1..3504142a81c9 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -774,6 +774,25 @@ public class UserManager { public static final String DISALLOW_OEM_UNLOCK = "no_oem_unlock"; /** + * Specifies that the managed profile is not allowed to have unified lock screen challenge with + * the primary user. + * + * <p><strong>Note:</strong> Setting this restriction alone doesn't automatically set a + * separate challenge. Profile owner can ask the user to set a new password using + * {@link DevicePolicyManager#ACTION_SET_NEW_PASSWORD} and verify it using + * {@link DevicePolicyManager#isUsingUnifiedPassword(ComponentName)}. + * + * <p>Can be set by profile owners. It only has effect on managed profiles when set by managed + * profile owner. Has no effect on non-managed profiles or users. + * <p>Key for user restrictions. + * <p>Type: Boolean + * @see DevicePolicyManager#addUserRestriction(ComponentName, String) + * @see DevicePolicyManager#clearUserRestriction(ComponentName, String) + * @see #getUserRestrictions() + */ + public static final String DISALLOW_UNIFIED_PASSWORD = "no_unified_password"; + + /** * Allows apps in the parent profile to handle web links from the managed profile. * * This user restriction has an effect only in a managed profile. |
