Merge "Changed the logic of calculating effective password limits"
This commit is contained in:
committed by
Android (Google) Code Review
commit
916b1e503d
@@ -17,6 +17,7 @@
|
||||
package com.android.server.devicepolicy;
|
||||
|
||||
import static android.Manifest.permission.MANAGE_CA_CERTIFICATES;
|
||||
import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
|
||||
import static android.app.admin.DevicePolicyManager.WIPE_EXTERNAL_STORAGE;
|
||||
import static android.app.admin.DevicePolicyManager.WIPE_RESET_PROTECTION_DATA;
|
||||
import static android.content.pm.PackageManager.GET_UNINSTALLED_PACKAGES;
|
||||
@@ -2352,6 +2353,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
||||
final int N = policy.mAdminList.size();
|
||||
for (int i=0; i<N; i++) {
|
||||
ActiveAdmin admin = policy.mAdminList.get(i);
|
||||
if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) {
|
||||
continue;
|
||||
}
|
||||
if (length < admin.minimumPasswordLetters) {
|
||||
length = admin.minimumPasswordLetters;
|
||||
}
|
||||
@@ -2397,6 +2401,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
||||
final int N = policy.mAdminList.size();
|
||||
for (int i = 0; i < N; i++) {
|
||||
ActiveAdmin admin = policy.mAdminList.get(i);
|
||||
if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) {
|
||||
continue;
|
||||
}
|
||||
if (length < admin.minimumPasswordNumeric) {
|
||||
length = admin.minimumPasswordNumeric;
|
||||
}
|
||||
@@ -2442,6 +2449,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
||||
final int N = policy.mAdminList.size();
|
||||
for (int i=0; i<N; i++) {
|
||||
ActiveAdmin admin = policy.mAdminList.get(i);
|
||||
if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) {
|
||||
continue;
|
||||
}
|
||||
if (length < admin.minimumPasswordSymbols) {
|
||||
length = admin.minimumPasswordSymbols;
|
||||
}
|
||||
@@ -2487,6 +2497,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
||||
final int N = policy.mAdminList.size();
|
||||
for (int i=0; i<N; i++) {
|
||||
ActiveAdmin admin = policy.mAdminList.get(i);
|
||||
if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) {
|
||||
continue;
|
||||
}
|
||||
if (length < admin.minimumPasswordNonLetter) {
|
||||
length = admin.minimumPasswordNonLetter;
|
||||
}
|
||||
@@ -5627,4 +5640,15 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if specified admin is allowed to limit passwords and has a
|
||||
* {@code passwordQuality} of at least {@code minPasswordQuality}
|
||||
*/
|
||||
private static boolean isLimitPasswordAllowed(ActiveAdmin admin, int minPasswordQuality) {
|
||||
if (admin.passwordQuality < minPasswordQuality) {
|
||||
return false;
|
||||
}
|
||||
return admin.info.usesPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user