cordova-plugin-camera icon indicating copy to clipboard operation
cordova-plugin-camera copied to clipboard

[IOS] All photos are available even though only some photos are allowed to access

Open hieunguyen2211 opened this issue 1 year ago • 4 comments

Bug Report

Problem

In IOS, when accessing the gallery, there is a dialog and the user needs to choose an option to grant access gallery permission to the application. If the user chooses "Select more photos...", there is a view for him/her to select which photos can be accessed. However, after that, in the next view, where the user can select a photo to import to the application, the user can access all photos in the gallery instead of only selected photos in the previous view => Granting read access for some photos does not work.

What is expected to happen?

When the user selects photos in the gallery to import to his/her application, only some photos, that are granted access, will be displayed.

What does actually happen?

When the user selects photos in the gallery to import to his/her application, all photos are displayed regardless ungranted access permission

Information

The requestPhotoPermissions method in CDVCamera.m is using deprecated API from PHPhotoLibrary: authorizationStatus and requestAuthorization. These 2 deprecated methods cannot return the correct value when the user chooses the "Select more photos..." option. 2 alternative methods for those are: authorizationStatusForAccessLevel and requestAuthorizationForAccessLevel, which can return the correct value: PHAuthorizationStatusLimited instead of PHAuthorizationStatusAuthorized.

Environment, Platform, Device

Iphone 14 (IOS 16.6)

Version information

  • Cordova: 12.0.0
  • Cordova-ios: 7.0.0
  • Cordova-plugin-camera: 7.0.0

Checklist

  • [x] I searched for existing GitHub issues
  • [x] I updated all Cordova tooling to most recent version
  • [x] I included all the necessary information above

hieunguyen2211 avatar Dec 20 '23 11:12 hieunguyen2211

+1. Same issue for me with iOS.

NityaSantosh26 avatar Dec 21 '23 08:12 NityaSantosh26

+1. I also meet this issue with my iOS device

DuyTrinh94 avatar Dec 22 '23 10:12 DuyTrinh94

There is no difference in knowing which option the user selected, the photo picker doesn't really need any permissions to work. Choosing the "limited" option, the only thing that limit is accessing privacy related information about the picture, such as the exif data, so that's why the picker shows all pictures, because no permission is required for accessing them.

But it's true that it's very confusing, not sure if the code should be changed to not request permissions or to add an option to request it or not.

jcesarmobile avatar Dec 28 '23 23:12 jcesarmobile

Hi @jcesarmobile ,

Are there any update on this topic? From my perspective, if permissions are not required for the photo picker on IOS (without accessing privacy), the code should be changed to not to request permissions.

hieunguyen2211 avatar Mar 27 '24 09:03 hieunguyen2211