From 7c2739888abf93f7c84497643f0ca8e55c20c2ca Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Thu, 7 Aug 2014 16:02:03 -0400 Subject: [PATCH] Don't allow creating guest when can't create user When user restriction is on to disable adding user also stop the user from creating guests. Bug: 16782635 Change-Id: I0396172867e2e217ada9ef747ea62d0c0382c5dd --- .../android/settings/users/UserSettings.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 7dc83efdff7..30269cded34 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -807,7 +807,19 @@ public class UserSettings extends SettingsPreferenceFragment mUserListCategory.addPreference(pref); } - if (!mIsGuest) { + boolean showGuestPreference = !mIsGuest; + // If user has DISALLOW_ADD_USER don't allow creating a guest either. + if (showGuestPreference && mUserManager.hasUserRestriction(UserManager.DISALLOW_ADD_USER)) { + showGuestPreference = false; + // If guest already exists, no user creation needed. + for (UserInfo user : users) { + if (user.isGuest()) { + showGuestPreference = true; + break; + } + } + } + if (showGuestPreference) { // Add a virtual Guest user for guest defaults Preference pref = new UserPreference(getActivity(), null, UserPreference.USERID_GUEST_DEFAULTS, @@ -936,6 +948,10 @@ public class UserSettings extends SettingsPreferenceFragment } } // No guest user. Create one. + if (mUserManager.hasUserRestriction(UserManager.DISALLOW_ADD_USER)) { + Log.i(TAG, "Blocking guest creation because it is restricted"); + return; + } UserInfo guestUser = mUserManager.createGuest(getActivity(), getResources().getString(R.string.user_guest)); if (guestUser != null) {