am 7ab11e45: am 5fd47543: am 85c73c40: Merge "[UserManager] expose method to retrieve credential owner" into mnc-dev

* commit '7ab11e45bd2be1a67e446aecf8e2da4b2209510b':
  [UserManager] expose method to retrieve credential owner
This commit is contained in:
Andres Morales
2015-08-06 22:41:47 +00:00
committed by Android Git Automerger
3 changed files with 43 additions and 1 deletions

View File

@@ -27,6 +27,12 @@ import android.os.ParcelFileDescriptor;
* {@hide}
*/
interface IUserManager {
/*
* DO NOT MOVE - UserManager.h depends on the ordering of this function.
*/
int getCredentialOwnerProfile(int userHandle);
UserInfo createUser(in String name, int flags);
UserInfo createProfileForUser(in String name, int flags, int userHandle);
void setUserEnabled(int userHandle);

View File

@@ -1067,6 +1067,22 @@ public class UserManager {
return profiles;
}
/**
* Returns the device credential owner id of the profile from
* which this method is called, or userHandle if called from a user that
* is not a profile.
*
* @hide
*/
public int getCredentialOwnerProfile(int userHandle) {
try {
return mService.getCredentialOwnerProfile(userHandle);
} catch (RemoteException re) {
Log.w(TAG, "Could not get credential owner", re);
return -1;
}
}
/**
* Returns the parent of the profile which this method is called from
* or null if called from a user that is not a profile.

View File

@@ -135,6 +135,11 @@ public class UserManagerService extends IUserManager.Stub {
// without first making sure that the rest of the framework is prepared for it.
private static final int MAX_MANAGED_PROFILES = 1;
/**
* Flag indicating whether device credentials are shared among same-user profiles.
*/
private static final boolean CONFIG_PROFILES_SHARE_CREDENTIAL = true;
// Set of user restrictions, which can only be enforced by the system
private static final Set<String> SYSTEM_CONTROLLED_RESTRICTIONS = Sets.newArraySet(
UserManager.DISALLOW_RECORD_AUDIO);
@@ -316,6 +321,21 @@ public class UserManagerService extends IUserManager.Stub {
return users;
}
@Override
public int getCredentialOwnerProfile(int userHandle) {
checkManageUsersPermission("get the credential owner");
if (CONFIG_PROFILES_SHARE_CREDENTIAL) {
synchronized (mPackagesLock) {
UserInfo profileParent = getProfileParentLocked(userHandle);
if (profileParent != null) {
return profileParent.id;
}
}
}
return userHandle;
}
@Override
public UserInfo getProfileParent(int userHandle) {
checkManageUsersPermission("get the profile parent");
@@ -943,7 +963,7 @@ public class UserManagerService extends IUserManager.Stub {
}
}
private void writeRestrictionsLocked(XmlSerializer serializer, Bundle restrictions)
private void writeRestrictionsLocked(XmlSerializer serializer, Bundle restrictions)
throws IOException {
serializer.startTag(null, TAG_RESTRICTIONS);
writeBoolean(serializer, restrictions, UserManager.DISALLOW_CONFIG_WIFI);