diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-09-26 01:18:58 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-09-26 01:18:58 +0000 |
commit | c68459237d05571073430dd10cef8af962b418b8 (patch) | |
tree | 0b0e036fc46d70fc2d8e923b119271ba0aec7b7d | |
parent | f939d6b6f6ec2f0a90bfbe1c4e2c1f5d7d9676e4 (diff) | |
parent | 94adfb0f85a2b33f4a64aa06d46f3c67fc8d74f2 (diff) | |
download | ContactsProvider-c68459237d05571073430dd10cef8af962b418b8.tar.gz |
Snap for 5900353 from 94adfb0f85a2b33f4a64aa06d46f3c67fc8d74f2 to qt-qpr1-release
Change-Id: I143f22cf53858f26f661c15763c3a30aee6b16b8
-rw-r--r-- | src/com/android/providers/contacts/ContactsProvider2.java | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java index c43cc1ed..02c8bf00 100644 --- a/src/com/android/providers/contacts/ContactsProvider2.java +++ b/src/com/android/providers/contacts/ContactsProvider2.java @@ -16,10 +16,6 @@ package com.android.providers.contacts; -import static android.content.pm.PackageManager.PERMISSION_GRANTED; -import static android.Manifest.permission.INTERACT_ACROSS_USERS; -import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL; - import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.OnAccountsUpdateListener; @@ -218,6 +214,7 @@ public class ContactsProvider2 extends AbstractContactsProvider private static final String READ_PERMISSION = "android.permission.READ_CONTACTS"; private static final String WRITE_PERMISSION = "android.permission.WRITE_CONTACTS"; + private static final String INTERACT_ACROSS_USERS = "android.permission.INTERACT_ACROSS_USERS"; /* package */ static final String PHONEBOOK_COLLATOR_NAME = "PHONEBOOK"; @@ -5457,13 +5454,9 @@ public class ContactsProvider2 extends AbstractContactsProvider return null; } - // If caller does not come from same profile, Check if it's privileged or allowed by - // enterprise policy - if (!isCallerFromSameUser()) { - if (!callerHoldsInteractAcrossUserPermission() - && !mEnterprisePolicyGuard.isCrossProfileAllowed(uri)) { - return createEmptyCursor(uri, projection); - } + // Check enterprise policy if caller does not come from same profile + if (!(isCallerFromSameUser() || mEnterprisePolicyGuard.isCrossProfileAllowed(uri))) { + return createEmptyCursor(uri, projection); } // Query the profile DB if appropriate. if (mapsToProfileDb(uri)) { @@ -5489,12 +5482,6 @@ public class ContactsProvider2 extends AbstractContactsProvider .getCurrentUserHandle(getContext()); } - private boolean callerHoldsInteractAcrossUserPermission() { - final Context context = getContext(); - return context.checkCallingPermission(INTERACT_ACROSS_USERS_FULL) == PERMISSION_GRANTED - || context.checkCallingPermission(INTERACT_ACROSS_USERS) == PERMISSION_GRANTED; - } - private Cursor queryDirectoryIfNecessary(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, CancellationSignal cancellationSignal) { String directory = getQueryParameter(uri, ContactsContract.DIRECTORY_PARAM_KEY); @@ -8538,12 +8525,10 @@ public class ContactsProvider2 extends AbstractContactsProvider if (!isDirectoryParamValid(uri)){ return null; } - if (!isCallerFromSameUser()) { /* From differnt user */ - if (!callerHoldsInteractAcrossUserPermission() /* no cross user permission */ - && !mEnterprisePolicyGuard.isCrossProfileAllowed(uri) - /* Policy not allowed */){ - return null; - } + if (!isCallerFromSameUser() /* From differnt user */ + && !mEnterprisePolicyGuard.isCrossProfileAllowed(uri) + /* Policy not allowed */){ + return null; } waitForAccess(mode.equals("r") ? mReadAccessLatch : mWriteAccessLatch); final AssetFileDescriptor ret; |