この記事では、Liferay Portal 6.2のMy Accountポートレットで、ポータル管理者が特定のフィールドを編集する権限を有効または無効にする方法を紹介します。 デフォルトでは、どのユーザー(管理者またはパワーユーザーという役割に関係なく)も、マイアカウント ポートレットのフィールドを編集できます。 この機能により、管理者は、どの ユーザー がマイアカウントで自分の情報を編集できるかを制御することができます。
同時に、同じ機能で、管理者は、ユーザーが編集を許可される フィールド を制御することができます。 最も重要なのは、フィールドを構成する優先順位が等しく重み付けされているため、独立して動作することです。 これは以下で明らかになります。
解決策
前提条件
テストとデモンストレーションのために、管理者権限を持たないユーザーを2人作成してください。デフォルトのパワーユーザーロールで十分です。 2人目のユーザーのメールアドレスドメインは、管理者、1人目のユーザーと異なる必要があります。
ユーザーを指定する
マイアカウントポートレットで、異なるユーザータイプによる特定のフィールドの編集権限を有効または無効にするには、 portal-ext.properties
の field.editable.user.types=
に以下の変更を加えてください。
- シナリオ1-管理者のみがフィールドを編集できる。
field.editable.user.types=
が空欄の場合、管理者以外のユーザーは、マイアカウント ポートレットのフィールドを編集できません。 この設定は、以下の値をNULL値で指定する必要があります(つまり空白にします)。#
を使ってコメントアウトすることはできません。 - シナリオ2-会社と同じメールドメインを持つユーザーだけが変更できる。
field.editable.user.types=user-with-mx
が設定されている場合、会社に属するメールアドレスを持つユーザーには変更が許可されるが、メールアドレスの接尾辞が異なるユーザーには変更が許可されない。 例えば、企業が @company.com をサフィックスとして使用し、有効なメールアドレスを持つゲストやコミュニティメンバーがメッセージボードにコメントを投稿できるようにする場合、ゲストやコミュニティメンバーの権限を制限することは理にかなっていると言えるでしょう。ただし、この値が設定されていても、特定のフィールドが有効になっていれば(後述の「 フィールドの指定」 の項を参照)、メールの接尾辞が会社と同じでないユーザーでも変更することができます。 これは、各プロパティが独立して動作するためです。 電子メールに対応するユーザーだけが同じであることを確認するために、ドメインフィールドを空白にしてください。
- シナリオ3-どのユーザーでも編集可能です。
field.editable.user.types=user-with-mx,user-without-mx
が設定されている場合、全員に編集権限があります。 これは、デフォルトのポータル設定です。
フィールドを指定する
この使用例では、管理者は、編集可能なフィールドを指定することができます。 使用可能なプロパティは以下の通りです:
#field.editable.domains[birthday]= #field.editable.domains[emailAddress]= #field.editable.domains[firstName]= #field.editable.domains[gender]= #field.editable.domains[jobTitle]= #field.editable.domains[lastName]= #field.editable.domains[middleName]= #field.editable.domains[portrait]= #field.editable.domains[prefix]= #field.editable.domains[screenName]= #field.editable.domains[suffix]=
例えば、Liferay Portalが大学の登録事務局として使用されていると仮定します。 当局は、学生にスクリーンネームとメールアドレスを割り当て、学生がそれを変更することを望んでいません。 ただし、それ以外の項目については、学生が編集することができます。 各プロパティには、以下のように、その横に *
を入力します:
field.editable.domains[emailAddress]= field.editable.domains[screenName]= field.editable.domains[birthday]=* field.editable.domains[firstName]=* field.editable.domains[gender]=* field.editable.domains[jobTitle]=* field.editable.domains[lastName]=* field.editable.domains[middleName]=* field.editable.domains[portrait]=* field.editable.domains[prefix]=* field.editable.domains[suffix]=*
上の図1では、Screen nameとEmail Addressのフィールドがグレーアウトしています(編集不可の意味です)。
編集可能なフィールドを指定することは、編集権限を持つユーザーを指定することとは独立していることを忘れないでください。 管理者は、電子メールの接尾辞が会社と異なるユーザーに、このセクションの特定のフィールドを編集できるようにすることができます。