Don't return self if not a profile

This fixes the inconsistency between no profile and a
removed profile.

Change-Id: I85d37ce42113bde8567be382372c5f4997601e85
Fixes: 34699518
Test: runtest -x
frameworks/base/services/tests/servicetests/src/com/android/server/pm/UserManagerTest.java
This commit is contained in:
Amith Yamasani
2017-01-25 11:35:44 -08:00
parent d3902a342e
commit 801e342faa
2 changed files with 4 additions and 2 deletions

View File

@@ -718,7 +718,7 @@ public class UserManagerService extends IUserManager.Stub {
return null;
}
int parentUserId = profile.profileGroupId;
if (parentUserId == UserInfo.NO_PROFILE_GROUP_ID) {
if (parentUserId == userHandle || parentUserId == UserInfo.NO_PROFILE_GROUP_ID) {
return null;
} else {
return getUserInfoLU(parentUserId);

View File

@@ -177,10 +177,12 @@ public class UserManagerTest extends AndroidTestCase {
UserInfo userInfo = createProfileForUser("Profile",
UserInfo.FLAG_MANAGED_PROFILE, primaryUserId);
assertNotNull(userInfo);
assertNull(mUserManager.getProfileParent(primaryUserId));
UserInfo parentProfileInfo = mUserManager.getProfileParent(userInfo.id);
assertNotNull(parentProfileInfo);
assertEquals(parentProfileInfo.id, primaryUserId);
removeUser(userInfo.id);
assertNull(mUserManager.getProfileParent(primaryUserId));
}
// Make sure only one managed profile can be created