Don't allow restricted profile creation for corp/edu owned devices
Bug: 14613459 Change-Id: I64dfba35418def8ae8793d7371b8960f5ff5946f
This commit is contained in:
@@ -4842,8 +4842,10 @@
|
||||
<string name="user_settings_title">Users</string>
|
||||
<!-- User settings header for list of users and profiles [CHAR LIMIT=40] -->
|
||||
<string name="user_list_title">Users & profiles</string>
|
||||
<!-- User settings add user or restricted profile menu [CHAR LIMIT=35] -->
|
||||
<string name="user_add_user_or_profile_menu">Add user or profile</string>
|
||||
<!-- User settings add user menu [CHAR LIMIT=35] -->
|
||||
<string name="user_add_user_menu">Add user or profile</string>
|
||||
<string name="user_add_user_menu">Add user</string>
|
||||
<!-- User settings summary for a restricted profile [CHAR LIMIT=50] -->
|
||||
<string name="user_summary_restricted_profile">Restricted profile</string>
|
||||
<!-- User settings summary for a managed profile [CHAR LIMIT=50] -->
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
<Preference
|
||||
android:key="user_add"
|
||||
android:title="@string/user_add_user_menu"
|
||||
android:title="@string/user_add_user_or_profile_menu"
|
||||
android:icon="@drawable/ic_menu_add_dark" />
|
||||
|
||||
</PreferenceScreen>
|
||||
|
@@ -129,6 +129,7 @@ public class UserSettings extends RestrictedSettingsFragment
|
||||
private boolean mAddingUser;
|
||||
private boolean mProfileExists;
|
||||
private boolean mEnabled = true;
|
||||
private boolean mCanAddRestrictedProfile = true;
|
||||
|
||||
private final Object mUserLock = new Object();
|
||||
private UserManager mUserManager;
|
||||
@@ -183,15 +184,16 @@ public class UserSettings extends RestrictedSettingsFragment
|
||||
mRemovingUserId = icicle.getInt(SAVE_REMOVING_USER);
|
||||
}
|
||||
}
|
||||
|
||||
mUserManager = (UserManager) getActivity().getSystemService(Context.USER_SERVICE);
|
||||
final Context context = getActivity();
|
||||
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||
if (!mUserManager.supportsMultipleUsers() || Utils.isMonkeyRunning()) {
|
||||
mEnabled = false;
|
||||
return;
|
||||
}
|
||||
|
||||
addPreferencesFromResource(R.xml.user_settings);
|
||||
mUserListCategory = (PreferenceGroup) findPreference(KEY_USER_LIST);
|
||||
mMePreference = new UserPreference(getActivity(), null, UserHandle.myUserId(),
|
||||
mMePreference = new UserPreference(context, null, UserHandle.myUserId(),
|
||||
mUserManager.isLinkedUser() ? null : this, null);
|
||||
mMePreference.setKey(KEY_USER_ME);
|
||||
mMePreference.setOnPreferenceClickListener(this);
|
||||
@@ -199,9 +201,16 @@ public class UserSettings extends RestrictedSettingsFragment
|
||||
mMePreference.setSummary(R.string.user_owner);
|
||||
}
|
||||
mAddUser = findPreference(KEY_ADD_USER);
|
||||
mAddUser.setOnPreferenceClickListener(this);
|
||||
if (!mIsOwner || UserManager.getMaxSupportedUsers() < 2) {
|
||||
removePreference(KEY_ADD_USER);
|
||||
} else {
|
||||
mAddUser.setOnPreferenceClickListener(this);
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
|
||||
Context.DEVICE_POLICY_SERVICE);
|
||||
if (dpm.getDeviceOwner() != null) {
|
||||
mCanAddRestrictedProfile = false;
|
||||
mAddUser.setTitle(R.string.user_add_user_menu);
|
||||
}
|
||||
}
|
||||
loadProfile();
|
||||
setHasOptionsMenu(true);
|
||||
@@ -771,7 +780,13 @@ public class UserSettings extends RestrictedSettingsFragment
|
||||
}
|
||||
}
|
||||
} else if (pref == mAddUser) {
|
||||
showDialog(DIALOG_CHOOSE_USER_TYPE);
|
||||
// If we allow both types, show a picker, otherwise directly go to
|
||||
// flow for full user.
|
||||
if (mCanAddRestrictedProfile) {
|
||||
showDialog(DIALOG_CHOOSE_USER_TYPE);
|
||||
} else {
|
||||
onAddUserClicked(USER_TYPE_USER);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user