SessionPermSetActivation
SessionPermSetActivation オブジェクトは、個々のユーザセッション中に有効化された権限セット割り当てを表します。SessionPermSetActivation オブジェクトが権限セットに挿入されると、有効化イベントが起動され、権限設定をユーザ固有のセッションに適用できるよ��になります。このオブジェクトは、API バージョン 37.0 以降で使用できます。
サポートされているコール
describeLayout()、describeSObjects()、query()、retrieve()
特別なアクセスルール
Summer '20 以降、このオブジェクトにアクセスできるのは、次のいずれかの権限を持つユーザのみとなります。
- 「設定・定義の参照」
- 「セッション権限セットの有効化の管理」
項目
| 項目名 | 詳細 |
|---|---|
| AuthSessionId |
|
| Description |
|
| PermissionSetGroupId |
|
| PermissionSetId |
|
| UserId |
|
使用方法
SessionPermSetActivation を使用して、指定されたセッションの時間内にのみ使用できる権限セットを作成します。たとえば、認証されたセッションの間のみ特定のアプリケーションにアクセスできる権限セットを作成します。
次の Apex の例では、ボタンを使用してセッション情報が送信された後に特定されたセッションが有効化されます。有効化に成功すると、ユーザに確認メッセージが表示されます。
1public class SessionPermSetActivationController {
2 // id of the session permission set to be activated
3 private final String sessionPermSetId = '0PSxx00000004rJ';
4 private final String sessionId;
5
6 public SessionPermSetActivationController() {
7 Map<String, String> sessionManagement = Auth.SessionManagement.getCurrentSession();
8 sessionId = sessionManagement.get('SessionId');
9 }
10
11 public PageReference activate() {
12 // activate the permission set
13 SessionPermSetActivation activation = new SessionPermSetActivation();
14 activation.AuthSessionId = sessionId;
15 activation.PermissionSetId = sessionPermSetId;
16 activation.Description = 'created by SessionPermSetActivationController';
17
18 insert activation;
19 return null;
20 }
21
22 public boolean getActivated() {
23 Integer alreadyActivated = [SELECT count()
24 FROM SessionPermSetActivation
25 WHERE AuthSessionId = :sessionId
26 And PermissionSetId = :sessionPermSetId LIMIT 1];
27 return alreadyActivated > 0;
28 }
29}
30
31
32<apex:page controller="SessionPermSetActivationController">
33 <apex:outputPanel rendered="{!!Activated}">
34 <h3>Activate Session Permission Set</h3>
35 <br />
36 <apex:form >
37 <apex:commandButton action="{!activate}" value="Activate" id="activateButton"/>
38 </apex:form>
39 </apex:outputPanel>
40 <apex:outputPanel rendered="{!Activated}">
41 <h3>Session Permission Set is already active.</h3>
42 </apex:outputPanel>
43</apex:page>