Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2050cfd7 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by android-build-merger
Browse files

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

am: f00e7804

Change-Id: I542e11688a52dd3cde8fd8c3df252b2ead0e5240
parents bceacc42 f00e7804
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -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) {