FLS đăng ký 2GP

Sep 08 2020

Tôi đã tạo một gói 2GP mới. Vì nó sẽ được phát hành lên AppExchange, tôi đã triển khai kiểm tra CRUD và FLS chung cho mọi nơi tôi liên hệ với Cơ sở dữ liệu trong mã Apex của mình.

ví dụ

MyAwsomeObject.getDescribe().isUpdateable();
MyAwesomeField.getDescribe().isUpdateable();

Tôi tạo một phiên bản gói mới với -ckhóa cho phạm vi kiểm tra Apex, nhưng các bài kiểm tra không thành công do kiểm tra quyền FLS. Kiểm tra CRUD vượt qua tốt.

Từ tài liệu, bản dựng 2GP diễn ra theo cách này:

  1. Một tổ chức đầu không thể truy cập mới được tạo.
  2. Siêu dữ liệu được đẩy lên tổ chức đầu.
  3. Chạy thử nghiệm.
  4. Tập lệnh sau cài đặt chạy.

Vì vậy, tôi không thấy có cách nào để chỉ định quyền FLS cho người dùng thay mặt cho người đang chạy thử nghiệm.

Việc xây dựng một gói không có -choặc không có kiểm tra FLS hoạt động hoàn hảo.

Có cách nào để vượt qua kiểm tra FLS này, cấp quyền truy cập FLS cho người dùng đang chạy hoặc bất kỳ giải pháp nào khác không?

Trả lời

3 BritishBoyinDC Sep 08 2020 at 20:26

Vì vậy, trong Apex Tests, bạn có thể sử dụng tính năng RunAs để thực hiện việc này - về cơ bản, tạo một người dùng trong thử nghiệm, chỉ định một cấu hình cơ bản (một cấu hình Quyền truy cập tối thiểu mới hữu ích cho việc này), sau đó gán bộ quyền và chạy kiểm tra ví dụ

Profile p = [SELECT Id FROM Profile WHERE Name = 'Minimum Access - Salesforce '];

User u = new User(Alias = 'standt', Email = '[email protected]',
EmailEncodingKey = 'UTF-8', LastName = 'Testing', LanguageLocaleKey = 'en_US', LocaleSidKey = 'en_US', ProfileId = p.Id,
TimeZoneSidKey = 'America/Los_Angeles', UserName = '[email protected]');

insert u;

PermissionSet ps = [SELECT Id FROM PermissionSet WHERE Name = 'My Permission Set'];
insert new PermissionSetAssignment(AssigneeId = u.id, PermissionSetId = ps.Id);

Nhưng - điều này giả sử bạn đang bao gồm Bộ Perm trong gói. Nếu không, có thể bạn sẽ cần đợi tính năng mới này (hoặc áp dụng cho thử nghiệm), tính năng này sẽ cho phép bạn bao gồm siêu dữ liệu non = packaged trong quá trình tạo gói khi nó xây dựng tổ chức đầu.