Merge "Allow call addSharedAccountsFromParentUser with CREATE_USERS permission." into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f00e780472
@@ -3538,7 +3538,7 @@ public class AccountManagerService
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addSharedAccountsFromParentUser(int parentUserId, int userId) {
|
public void addSharedAccountsFromParentUser(int parentUserId, int userId) {
|
||||||
checkManageUsersPermission("addSharedAccountsFromParentUser");
|
checkManageOrCreateUsersPermission("addSharedAccountsFromParentUser");
|
||||||
Account[] accounts = getAccountsAsUser(null, parentUserId, mContext.getOpPackageName());
|
Account[] accounts = getAccountsAsUser(null, parentUserId, mContext.getOpPackageName());
|
||||||
for (Account account : accounts) {
|
for (Account account : accounts) {
|
||||||
addSharedAccountAsUser(account, userId);
|
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,
|
private boolean hasExplicitlyGrantedPermission(Account account, String authTokenType,
|
||||||
int callerUid) {
|
int callerUid) {
|
||||||
if (callerUid == Process.SYSTEM_UID) {
|
if (callerUid == Process.SYSTEM_UID) {
|
||||||
|
|||||||
Reference in New Issue
Block a user