diff options
author | 2014-02-18 17:31:29 +0000 | |
---|---|---|
committer | 2014-02-18 17:31:31 +0000 | |
commit | 587f43d8725b11632b5d64a0a56a647207f01668 (patch) | |
tree | ee0ac2ca87b97b0971510b6e50d8d2560b990a86 | |
parent | e62c4a10cbcf6946d505470d8cc44c6855c679b3 (diff) | |
parent | 661ec4710b30516a2c7a1101ba65ecac109af619 (diff) |
Merge "Change API for setProfileOwner to require userId"
-rw-r--r-- | core/java/android/app/admin/DevicePolicyManager.java | 6 | ||||
-rw-r--r-- | services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java | 8 |
2 files changed, 11 insertions, 3 deletions
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 40bdb7398129..0cc878e38f63 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -1690,16 +1690,16 @@ public class DevicePolicyManager { * user. Also, this method must be called before the user has been used for the first time. * @param packageName the package name of the application to be registered as profile owner. * @param ownerName the human readable name of the organisation associated with this DPM. + * @param userHandle the userId to set the profile owner for. * @return whether the package was successfully registered as the profile owner. * @throws IllegalArgumentException if packageName is null, the package isn't installed, or * the user has already been set up. */ - public boolean setProfileOwner(String packageName, String ownerName) + public boolean setProfileOwner(String packageName, String ownerName, int userHandle) throws IllegalArgumentException { if (mService != null) { try { - return mService.setProfileOwner(packageName, ownerName, - Process.myUserHandle().getIdentifier()); + return mService.setProfileOwner(packageName, ownerName, userHandle); } catch (RemoteException re) { Log.w(TAG, "Failed to set profile owner", re); throw new IllegalArgumentException("Couldn't set profile owner.", re); diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index bb9654418197..12f0114691d5 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -2830,6 +2830,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { return false; } mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USERS, null); + + UserManager um = (UserManager) mContext.getSystemService(Context.USER_SERVICE); + if (um.getUserInfo(userHandle) == null) { + // User doesn't exist. + throw new IllegalArgumentException( + "Attempted to set profile owner for invalid userId: " + userHandle); + } + if (packageName == null || !DeviceOwner.isInstalledForUser(packageName, userHandle)) { throw new IllegalArgumentException("Package name " + packageName |