Merge "Allow call addSharedAccountsFromParentUser with CREATE_USERS permission." into nyc-dev

This commit is contained in:
Sudheer Shanka
2016-06-20 22:38:48 +00:00
committed by Android (Google) Code Review

View File

@@ -3538,7 +3538,7 @@ public class AccountManagerService
@Override
public void addSharedAccountsFromParentUser(int parentUserId, int userId) {
checkManageUsersPermission("addSharedAccountsFromParentUser");
checkManageOrCreateUsersPermission("addSharedAccountsFromParentUser");
Account[] accounts = getAccountsAsUser(null, parentUserId, mContext.getOpPackageName());
for (Account account : accounts) {
addSharedAccountAsUser(account, userId);
@@ -5092,6 +5092,16 @@ public class AccountManagerService
}
}
private static void checkManageOrCreateUsersPermission(String message) {
if (ActivityManager.checkComponentPermission(android.Manifest.permission.MANAGE_USERS,
Binder.getCallingUid(), -1, true) != PackageManager.PERMISSION_GRANTED &&
ActivityManager.checkComponentPermission(android.Manifest.permission.CREATE_USERS,
Binder.getCallingUid(), -1, true) != PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("You need MANAGE_USERS or CREATE_USERS permission to: "
+ message);
}
}
private boolean hasExplicitlyGrantedPermission(Account account, String authTokenType,
int callerUid) {
if (callerUid == Process.SYSTEM_UID) {