Read new value of admin status on UserCapabilities update

Before multiple admins were introduced, only main user could be an admin and that status was not modifiable. But now it can be updated for non-main admins of the device. So it is important to refresh this value to keep it up to date.

Bug: 359466920
Test: atest UserCapabilitiesTest
Flag: EXEMPT bugfix_only
Change-Id: If39ad24b10daf6886f402926b3bab23b50201c98
This commit is contained in:
Tetiana Meronyk
2024-08-14 13:20:04 +00:00
parent 5cbcfb07fe
commit 56446fa3b8
2 changed files with 14 additions and 0 deletions

View File

@@ -76,6 +76,9 @@ public class UserCapabilities {
public void updateAddUserCapabilities(Context context) {
final UserManager userManager =
(UserManager) context.getSystemService(Context.USER_SERVICE);
final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId());
mIsAdmin = myUserInfo.isAdmin();
mEnforcedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(context,
UserManager.DISALLOW_ADD_USER, UserHandle.myUserId());
final boolean hasBaseUserRestriction = RestrictedLockUtilsInternal.hasBaseUserRestriction(

View File

@@ -80,6 +80,17 @@ public class UserCapabilitiesTest {
assertThat(userCapabilities.mDisallowSwitchUser).isFalse();
}
@Test
public void changeAdminStatus_updateUserCapabilities_mIsAdminGetsUpdated() {
mUserManager.setIsAdminUser(false);
UserCapabilities userCapabilities = UserCapabilities.create(mContext);
assertThat(userCapabilities.isAdmin()).isFalse();
mUserManager.setIsAdminUser(true);
userCapabilities.updateAddUserCapabilities(mContext);
assertThat(userCapabilities.mIsAdmin).isTrue();
}
@Test
public void userSwitchEnabled_off() {
mUserManager.setUserSwitcherEnabled(false);