Разрешения, введенные в Salesforce Apex WebService - PullRequest
1 голос
/ 31 января 2012

После прочтения этого лакомого кусочка может показаться, что разрешение текущего пользователя не имеет значения.Однако при вызове этого метода от имени любого пользователя, кроме пользователя с профилем администратора, он генерирует исключение INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY:

global without sharing class OpportunityTeamSales {
    WebService static void AssignToSalesTeam(string userId, string opportunityId)
    {
        OpportunityTeamMember tm = new OpportunityTeamMember();
        tm.OpportunityId = opportunityId;
        tm.UserId = userId;
        tm.TeamMemberRole = 'Sales Engineer';

        insert tm;
    }
}

Событие с явными ключевыми словами without sharing, похоже, что оно обеспечивает безопасность на уровне поля/ разрешения для объекта / дочернего объекта.Opportunity и OpportunityTeamMember being системные объекты, мы не можем редактировать отношения.

ОБНОВЛЕНИЕ:

В профиле пользователя, который обнаружил ошибку, есть чтение / записьРазрешения / modify для объекта Opportunity и для объекта OpportunityTeamMember не имеют определенного установленного разрешения.Мы просто пытаемся создать OpportunityTeamMember, цель поиска для которой пользователь имеет полные разрешения, за исключением «delete».

1 Ответ

3 голосов
/ 31 января 2012

without sharing означает, что класс не уважает правила совместного использования, правила, которые управляют видимостью записей в системе, когда для параметра конфиденциальности для объекта установлено значение private. Насколько я знаю, это не означает, что разрешения на уровне объекта переопределены, и поэтому вы все равно не можете получить доступ к полю поиска, которое присоединяется к объекту, к которому у пользователя нет доступа, следовательно, вы видите здесь ошибку , Вам нужно будет назначить пользователя другому профилю пользователя, который имеет доступ к этим объектам.

EDIT

Предполагая, что у ваших пользователей есть необходимый доступ к объектам, я полагаю, что вам также нужно проверить разрешение "Настроить приложение" в профиле пользователя, чтобы они могли изменять отделы продаж.

...