Apex Manage Sharing
Apex Manage Sharing представляет собой механизм управления доступом к записям в Salesforce. Он позволяет определять, какие пользователи будут иметь доступ к определенным записям и какой уровень доступа им будет предоставлен.
С помощью Apex Manage Sharing вы можете создавать пользовательские правила доступа, а также настраивать стандартные правила доступа в Salesforce. Он позволяет настраивать доступ для пользователей, групп пользователей, ролей и профилей.
При использовании Apex Manage Sharing вы можете определять, какие поля будут доступны для редактирования, а также какие действия могут выполнять пользователи в отношении каждой записи. Например, вы можете определить, что пользователь с определенным профилем может только просматривать записи, но не может их редактировать.
Одним из способов использования Apex Manage Sharing является создание классов в Apex, которые определяют пользовательские правила доступа. Например, вы можете создать класс, который позволяет пользователю видеть только записи, связанные с его учетной записью, или класс, который определяет права доступа для конкретной группы пользователей.
Давайте рассмотрим пример кода, который использует Apex Manage Sharing для определения пользовательских прав доступа для объекта Account:
java
public without sharing class AccountSharingController {
@InvocableMethod(label='Set account sharing')
public static void setAccountSharing(List accountIds) {
List accountShares = new List();
for (Id accountId : accountIds) {
AccountShare accountShare = new AccountShare();
accountShare.AccountId = accountId;
accountShare.OpportunityAccessLevel = 'Read';
accountShare.UserOrGroupId = '005D0000000EykV';
accountShare.RowCause = Schema.AccountShare.RowCause.Manual;
accountShares.add(accountShare);
}
insert accountShares;
}
}
В этом примере мы создаем контроллер Apex, который позволяет установить правила доступа для объекта Account. Метод setAccountSharing получает список идентификаторов записей Account, для которых нужно установить правила доступа. Затем создаются объекты AccountShare, которые устанавливаются для каждой записи Account. В нашем случае, мы устанавливаем права доступа на чтение для пользователей, у которых есть доступ к объекту Opportunity, и которые имеют определенный идентификатор пользователя или группы пользователей.
Наконец, мы вставляем AccountShare записи в базу данных с помощью метода insert. Это позволяет нам установить правила доступа для всех выбранных записей Account.
В итоге, Apex Manage Sharing позволяет управлять доступом к записям в Salesforce, определять права доступа для пользователей, групп пользователей, ролей и профилей, а также устанавливать правила доступа при помощи специальных классов в Apex. Этот механизм является неотъемлемой частью безопасности данных в Salesforce и позволяет создавать более гибкие и настраиваемые правила доступа для каждой записи в базе данных.