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


Post:2021/08/09

Update:2021/09/10

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

Takuro Ieuji

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

東京オリンピックも閉会式を迎えましたね。コロナ禍の中で賛否両論ありますが私は興奮しっぱなしで楽しませてもらいました!特に、男子サッカー久保くんの号泣する姿はとても印象的でした。

東京オリパラに関する雑学を一つ。

授与されるメダルは使用済みの小型家電等から金属を回収して制作されたものだそうです(金属量100%回収)。私自身もリサイクルに対する意識をもっと強く持つべきだと感じました。息抜き程度に下記リンクに詳細がありますので是非!

「都市鉱山からつくる!みんなのメダルプロジェクト」について:https://olympics.com/tokyo-2020/ja/games/medals-project/

では、本題へ!

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

例えば、、、

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

このような場面を想定する場合等に使用できる方法で、コントリビュートモジュールである「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
フルスタックエンジニア
神戸出身。音声認識の研究、医療システムの開発、不動産営業、人材派遣営業等、色々経験してきました。一人でも多くの方に「見て良かった」と思ってもらえるような記事を作成できるようにエンジニアスキルはもちろんのこと、執筆スキルの向上も頑張っていきます!