---
title: 同じグループのメンバーが作成したコンテンツのみ表示・編集を可能にする
description: コンテンツ定義の編集権限設定で閲覧・編集可能なグループを制限することができますが、「自分と同じグループ」のような動的な設定の場合はトリガーを使ったカスタム処理で実装します。本チュートリアルではコンテンツの表示（管理画面）のトリガーを使用して、同じグループのメンバーが作成したコンテンツのみ表示・編集が可能となる制限をコンテンツ定義に設定します。
---

## 概要
コンテンツ定義の編集権限設定で閲覧・編集可能なグループを制限することができますが、
「自分と同じグループ」のような動的な設定の場合はトリガーを使ったカスタム処理で実装します。

本チュートリアルでは[コンテンツの表示（管理画面）](/ja/docs/reference/trigger-variables/#コンテンツの表示管理画面)のトリガーを使用して、同じグループのメンバーが作成したコンテンツのみ表示・編集が可能となる制限をコンテンツ定義に設定します。

### 学べること
以下の手順で、同じグループのメンバーが作成したコンテンツのみ表示・編集が可能となる制限を設定します。

- [カスタム処理を設定する](#カスタム処理を設定する)
- [動作を確認する](#動作を確認する)


## カスタム処理を設定する

[オペレーション] -> [カスタム処理]をクリックします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/45a3b82e8fec3d1ad46a72c0bf8d394b.png)

[追加]をクリックします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/471bc146570ff60efb362ece59b7fbe1.png)

以下のカスタム処理を設定します。 

|項目|値|
|:--|:--|
|タイトル|fiter_members_of_the_same_group|
|識別子|fiter_members_of_the_same_group|
|トリガ|コンテンツの表示（管理画面）/対象のコンテンツ定義IDを指定|
|処理|以下の内容|

```smarty reference title="fiter_members_of_the_same_group"
https://github.com/diverta/kuroco-documents/blob/main/sample_code/custom_function/trigger/fiter_members_of_the_same_group.txt
```

![Image from Gyazo](https://t.gyazo.com/teams/diverta/1cbe022b063b6d0adf919036ac49f245.png)

入力ができたら[追加する]をクリックしてカスタム処理を追加します。

## 動作を確認する
動作の確認をするため、検証用のメンバーとグループを以下のように準備します。  

|メンバー|グループ|
|:--|:--|
|Diverta Hanako|Tester|
|Diverta Jiro|Editor|
|Diverta Taro|Editor|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/5bd54ba4deeb968800cc1cd7fe3fe915.png)

次に、それぞれのメンバーでログインをして、コンテンツを1つずつ作成します。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/aafb0bb9871b3897a0f5c38c257f911b.png)

:::info
コンテンツの表示（管理画面）のトリガーは「スーパーユーザー」以外でログインしている場合に実行されるため、スーパーユーザーからは全てのコンテンツが確認できます。
:::

最後にそれぞれのメンバーでログインをして、一覧に表示されるコンテンツを確認します。  
同じグループのメンバーが作成したコンテンツだけが表示されることが分かります。

**Diverta Hanakoでログイン**

![Image from Gyazo](https://t.gyazo.com/teams/diverta/332a4a07a44b5b179f856a4f369cc8eb.png)

**Diverta Jiroでログイン**

![Image from Gyazo](https://t.gyazo.com/teams/diverta/7db9012cda539deae44393ea47997b37.png)

**Diverta Taroでログイン**

![Image from Gyazo](https://t.gyazo.com/teams/diverta/13ae4b2fc1795f1afe53653064ee30d2.png)

:::caution
上記のサンプルコードの場合、
- Aさんは、`幹部` グループと `社内釣り愛好会` グループに所属
- Bさんは、`平社員` グループと `社内釣り愛好会 `グループに所属
- Aさんが`トップシークレット文書` を作成する

とすると、Bさんは `トップシークレット文書` を編集可能になります。

１人のメンバーは1グループのみに所属する運用にする。カスタム処理内に例外の処理を追加する。などプロジェクトに合わせて調整してください。
:::

:::tip
さらに、[コンテンツのバリデーション前](/ja/docs/reference/trigger-variables/#コンテンツのバリデーション前)のトリガーを追加することで、同じグループのメンバーが作成したコンテンツだけ表示されるが、編集はできないといった実装も可能です。
:::

## 関連ドキュメント
- [カスタム処理に利用できるトリガと変数の一覧](/ja/docs/reference/trigger-variables/)
- [Smartyプラグイン](/ja/docs/reference/smarty-plugin/)