Skip to content

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

@hieunguyen2211

Description

@hieunguyen2211

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions