If DISALLOW_REMOVE_USER is enabled, UserManager.removeUser should not remove users.
Bug: 15834711
Change-Id: I8048c971401fe3216a6e92aae1c961a3aee02dde
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index a0cb098..79c112a 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -1103,6 +1103,12 @@
*/
public boolean removeUser(int userHandle) {
checkManageUsersPermission("Only the system can remove users");
+ if (getUserRestrictions(UserHandle.getCallingUserId()).getBoolean(
+ UserManager.DISALLOW_REMOVE_USER, false)) {
+ Log.w(LOG_TAG, "Cannot remove user. DISALLOW_REMOVE_USER is enabled.");
+ return false;
+ }
+
long ident = Binder.clearCallingIdentity();
try {
final UserInfo user;