Drupalでユーザーグループ毎にアクセス制御


こんにちは。アクレットの家氏です。

今回は、ユーザーをグループに分けてグループ毎にコンテンツ対するアクセス制御を行う方法を簡単にご紹介させて頂きます。

例えば、、、

本社のメンバーのみが閲覧可能な秘匿記事を公開したい!

このような場面を想定する場合等に使用できる方法で、コントリビュートモジュールである「Group」モジュールを使用します。実際に試していきましょう!

 

1.「Group」モジュールをインストール、有効化しましょう

drupal.orgからGroupモジュールをインストールし、有効化してください。(https://www.drupal.org/project/group)

article_image1

有効化すると管理メニューにグループが追加されますので、グループに関する設定はこちらから行っていくことになります。

article_image2

*Groupモジュールを有効化するにあたり下記モジュールが必要となります。

article_image

 
2.グループタイプの追加

Group typesタブ内「Add group type」からグループタイプを追加します。

article_image1

下記のグループタイプを追加します。

・本社

・支社

article_image1

 
3.アクセス制御を行うコンテンツを設定

Group typesタブ内「利用可能なコンテンツの設定」から対象コンテンツタイプをインストールします。

article_image1

今回は、記事コンテンツに対してアクセス制御行うため記事コンテンツタイプをインストールしています。

article_image1

 
4.グループの追加

リストタブ内「グループの追加」からグループを追加します。a

下記のグループを追加します。各グループのURLも設定しておきます。

・営業課(本社):/headoffice/salesoffice

・営業課(支社):/branchoffice/salesoffice

article_image1

 
5.権限設定

Group typesタブ内「グループの役割の編集」から各グループの役割を作成、権限の設定を行っていきます。

「Add group role」から役割を追加し、「権限の編集」から権限の設定を行います。

article_image1

今回は、下記の権限を付与しました。

article_image1

 
6.ユーザーをグループに追加

「メンバーを追加」から各グループにユーザーを追加します。先ほど作成した役割にチェックを入れユーザー追加を行います。

article_image1

グループ「営業課(本社)」にユーザー「営業課長_本社」が追加されていることが確認できました。

article_image1

グループ「営業課(支社)」にもユーザーを追加します。

article_image1

 
7.アクセス制御の確認

最後に、実際に記事を作成して別グループからは閲覧できないことを確認していきます。

ユーザー「営業課長_本社」でログインし「新規コンテンツを追加」から記事を作成します。

article_image1

同様に、ユーザー「営業課長_支社」でログインし記事を作成します。

article_image1

 

ユーザー「営業課長_本社」でログインしてホームを確認します。

article_image1

本社の記事は閲覧可能ですが、支社の記事が閲覧不可能となっていることが確認できました。尚、管理者権限で作成したテスト記事は閲覧可能となっています。

ユーザー「営業課長_支社」でログインした場合のホーム画像も載せておきます。

article_image1

 

上記のように、Groupモジュールを使用する事で、グループ毎にコンテンツに対してアクセス制御することが可能となります。興味のある方は是非一度触ってみてください!

今回の記事は以上となります。ご覧頂きありがとうございました!

Profile picture for user Takuro Ieuji
Takuro Ieuji

株式会社アクレットは、15年以上のDrupal開発実績を持っています。
プロジェクトの要件定義、システム設計から、Drupalサイト構築、運用サポートまで、Drupalに関するあらゆるサービスを提供いたします。

お問い合わせ