apache / cordova-plugin-camera

Apache Cordova Plugin camera

Home Page:https://cordova.apache.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

hieunguyen2211 opened this issue · 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

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

+1. Same issue for me with iOS.

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

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.

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.