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>
|
<string name="user_settings_title">Users</string>
|
||||||
<!-- User settings header for list of users and profiles [CHAR LIMIT=40] -->
|
<!-- User settings header for list of users and profiles [CHAR LIMIT=40] -->
|
||||||
<string name="user_list_title">Users & profiles</string>
|
<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] -->
|
<!-- 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] -->
|
<!-- User settings summary for a restricted profile [CHAR LIMIT=50] -->
|
||||||
<string name="user_summary_restricted_profile">Restricted profile</string>
|
<string name="user_summary_restricted_profile">Restricted profile</string>
|
||||||
<!-- User settings summary for a managed profile [CHAR LIMIT=50] -->
|
<!-- User settings summary for a managed profile [CHAR LIMIT=50] -->
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="user_add"
|
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" />
|
android:icon="@drawable/ic_menu_add_dark" />
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -129,6 +129,7 @@ public class UserSettings extends RestrictedSettingsFragment
|
|||||||
private boolean mAddingUser;
|
private boolean mAddingUser;
|
||||||
private boolean mProfileExists;
|
private boolean mProfileExists;
|
||||||
private boolean mEnabled = true;
|
private boolean mEnabled = true;
|
||||||
|
private boolean mCanAddRestrictedProfile = true;
|
||||||
|
|
||||||
private final Object mUserLock = new Object();
|
private final Object mUserLock = new Object();
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
@@ -183,15 +184,16 @@ public class UserSettings extends RestrictedSettingsFragment
|
|||||||
mRemovingUserId = icicle.getInt(SAVE_REMOVING_USER);
|
mRemovingUserId = icicle.getInt(SAVE_REMOVING_USER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
final Context context = getActivity();
|
||||||
mUserManager = (UserManager) getActivity().getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||||
if (!mUserManager.supportsMultipleUsers() || Utils.isMonkeyRunning()) {
|
if (!mUserManager.supportsMultipleUsers() || Utils.isMonkeyRunning()) {
|
||||||
mEnabled = false;
|
mEnabled = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.user_settings);
|
addPreferencesFromResource(R.xml.user_settings);
|
||||||
mUserListCategory = (PreferenceGroup) findPreference(KEY_USER_LIST);
|
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);
|
mUserManager.isLinkedUser() ? null : this, null);
|
||||||
mMePreference.setKey(KEY_USER_ME);
|
mMePreference.setKey(KEY_USER_ME);
|
||||||
mMePreference.setOnPreferenceClickListener(this);
|
mMePreference.setOnPreferenceClickListener(this);
|
||||||
@@ -199,9 +201,16 @@ public class UserSettings extends RestrictedSettingsFragment
|
|||||||
mMePreference.setSummary(R.string.user_owner);
|
mMePreference.setSummary(R.string.user_owner);
|
||||||
}
|
}
|
||||||
mAddUser = findPreference(KEY_ADD_USER);
|
mAddUser = findPreference(KEY_ADD_USER);
|
||||||
mAddUser.setOnPreferenceClickListener(this);
|
|
||||||
if (!mIsOwner || UserManager.getMaxSupportedUsers() < 2) {
|
if (!mIsOwner || UserManager.getMaxSupportedUsers() < 2) {
|
||||||
removePreference(KEY_ADD_USER);
|
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();
|
loadProfile();
|
||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
@@ -771,7 +780,13 @@ public class UserSettings extends RestrictedSettingsFragment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (pref == mAddUser) {
|
} else if (pref == mAddUser) {
|
||||||
|
// If we allow both types, show a picker, otherwise directly go to
|
||||||
|
// flow for full user.
|
||||||
|
if (mCanAddRestrictedProfile) {
|
||||||
showDialog(DIALOG_CHOOSE_USER_TYPE);
|
showDialog(DIALOG_CHOOSE_USER_TYPE);
|
||||||
|
} else {
|
||||||
|
onAddUserClicked(USER_TYPE_USER);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user