summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jessica Hummel <jhummel@google.com> 2014-02-18 17:31:29 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-02-18 17:31:31 +0000
commit587f43d8725b11632b5d64a0a56a647207f01668 (patch)
treeee0ac2ca87b97b0971510b6e50d8d2560b990a86
parente62c4a10cbcf6946d505470d8cc44c6855c679b3 (diff)
parent661ec4710b30516a2c7a1101ba65ecac109af619 (diff)
Merge "Change API for setProfileOwner to require userId"
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java6
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java8
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