アーキテクチャオーチャードCMS。 セキュリティと開発の概念

これは、ガイド「 Orchard CMSを使用してゼロからWebサイトを作成する方法 」の第2部の続きです。 このガイドの最初の部分である最初続きを知ることができます。 Orchard CMS Architectureを開始します。 基本的な概念 」を見つけて、ここここで 読むことができます

はじめに


Orchard CMSでの作業を開始するには、コンテンツを操作するためにこのCMSで使用される基本的な概念を学ぶ必要があります。 ガイドのこのパートでは、Orchard CMSのセキュリティと権利の制限の概念と、コンテンツ管理システムのモジュールの開発で使用される概念を紹介します。

オーチャードの自動ダウンロードは 、クイックアクセスツールであるWeb Platform Installerを 使用して アプリケーションギャラリー から利用できることを思い出させてください このリンクを クリックし てインストールを開始します )。

Orchard CMSセキュリティの概念


各コンテンツ管理システムの重要な部分は、ユーザー権利のセキュリティ、範囲設定、および管理です。 マニュアルのこの部分では、Orchard CMSのセキュリティ概念を見ていきます。

ユーザーとロール


Orchard CMSでは、特定の権限とアクセス権のセットを持つロールをユーザーに割り当てることができます。 すべてのユーザーが1つから複数のロールを持つことができます。

開発者とサイト管理者は、ユーザー用に独自のロールを作成できますが、デフォルトでは、Orchard CMSに一連の基本的なロールが既に存在します。「匿名」ロールと「認証済み」ロールを除くすべてのロールを手動で割り当てることができます。 これらの2つの役割は、サイトの実行中に自動的に割り当てられます。

clip_image002

clip_image004
2.14。 Orchard CMS管理パネルでユーザーとロールを管理します

Orchard CMSでは、ロールとユーザーは管理パネルと対応するセクションを使用して管理されます(図2.14)。

特権と許可

Orchardコンテンツ管理システムでは、すべてのユーザーがサイトに対するさまざまな特権とアクセス許可を持つことができます。 サイト上でいくつかのアクションを実行する権利と特権については、権限メカニズムによるオーチャードで説明されています。

Orchard CMSでは、ロールに付与された権限は、これらのロールに割り当てられたユーザーに継承されます。 つまり、ユーザーに管理者の役割が割り当てられている場合、このユーザーは管理者の役割に固有のすべての権限を受け取ります(図2.15)。

clip_image006

2.15。 管理パネルでのユーザー設定とその役割の編集

ユーザーの許可を取り消すには、ユーザーから役割を取得するか、この役割を編集して許可を削除する必要があります。

一部の許可は暗黙的に取得される場合があります。 たとえば、ユーザーに「サイト所有者」権限を付与すると、そのようなユーザーは他のすべての権限を暗黙的に取得します。

Orchard CMSはモジュラーアプローチに基づいているため、権利の管理と一連の権限の作成はモジュールとその開発者に委ねられています。 モジュールは、異なるロールのOrchard CMS管理パネルで設定できる一連の権限を定義する必要があります(図2.16)。

clip_image008
2.16。 Orchard CMS管理パネルで特定のロールのさまざまなモジュールの権限を編集する

サイト所有者

Orchard CMSシステムには、スーパーユーザーを説明する「サイト所有者」という特別な概念があります。 このユーザーは、CMSの初期構成時に設定されます(デフォルトでは、adminという名前が割り当てられますが、この名前は変更できます)。

既定では、サイトの所有者には、サイトとそのコンテンツで可能なすべてのアクションに対するアクセス許可が付与されます。 この許可セットは、コントロールパネルから変更できます。

さらに、Orchard CMSには「サイト所有者権限」権限があります。これにより、スーパーユーザー権限をロール全体に発行できます。 このアクセス許可は、デフォルトで管理者ロールに付与されます(図2.16)。

オーチャードCMS開発の概念


Orchard CMSモジュールの開発者は、このコンテンツ管理ツールを操作する多くの概念を知る必要があります。 ほとんどの概念は、ソフトウェア開発とASP.NET MVCフレームワークに関連しています。

CMS用のモジュールの開発を検討する際に、これらの概念に精通します。

ハンドラー

ハンドラーは、ASP.NET MVCのアクションフィルターに似たオーチャードの概念です。 Orchardのハンドラーは、リクエスト処理の実行中に何らかのイベントに応じて実行されるコードです。

ハンドラーを作成するには、ハンドラークラスを継承する必要があるContentHandlerクラスをContentHandlerします。

ハンドラーが応答できるイベントは、次のメソッドによって処理されます。
運転手

ドライバーは、ASP.NET MVCのコントローラーに似たオーチャードの概念です。 コントローラとは異なり、ドライバはクエリレベルではなくコンテンツレベルで動作します。 ドライバーは、コントロールパネルからの要求を表示および処理するためのフォームを準備しています。

ドライバークラスは、 ContentPartDriver <>クラスを継承します。

記録

レコードは、コンテンツの観点からデータベースを表すクラスです。 レコードは、各プロパティが仮想でなければならないPOCOオブジェクトです。

clip_image009

レコードクラスは、 ContentPartRecordクラスを継承します。

モデル

コンテンツパーツのモデルは、コンテンツパーツクラス自体です。 一部のパーツは、強く型付けされた表現を定義したり、より柔軟な動的フォームを作成したりするための表現モデルも定義しています。

移行

移行とは、関数の最初のインストール中、または古いバージョンから新しいバージョンに更新するときに実行する必要がある操作の説明です。 この概念により、データを損失することなく、機能のソフト更新が可能になります。 Orchard CMSは、データ移行のための特別なツールを提供します。

注入

コード挿入は、Orchard CMSで広く使用されています。 コードに依存関係が必要な場合、このコードでは特定のインターフェイスの1つ以上のインスタンスを挿入する必要があります。 Orchard CMSフレームワークは、実行時に正しいコードの取得、インスタンス化、および注入を自動的に処理します。

おわりに


Orchard CMSマニュアルの第2部では、このコンテンツ管理システムが動作する最も重要な概念を検討しました。

コンテンツを操作するときにOrchard CMSで使用される概念と用語に精通しました。 システムレイアウトメカニズムの基本概念を学びました。 セキュリティと権利の描写のシステムを検討しました。 そして最後に、このシステム用のモジュールの開発に使用されるOrchard CMSの概念に精通しました。

このガイドの次のパートでは、ウィジェットとOrchard CMS機能拡張メカニズムについて詳しく見ていきます。

Source: https://habr.com/ru/post/J116858/


All Articles