Group
クラスにこの変数を変更するためにrequireDefaultRecords
を呼び出す拡張を追加できます。
個人用サイト/コード/拡張/ CustomGroup.php
class CustomGroup extends DataExtension {
public function requireDefaultRecords() {
parent::requireDefaultRecords();
$contentAuthorGroup = Group::get()->filter('Code', 'content-authors')->first();
if ($contentAuthorGroup) {
Permission::grant($contentAuthorGroup->ID, 'EDIT_SITECONFIG');
}
}
}
私たちは、config.yml
ファイルに私たちのGroup
拡張を可能にします。このソリューションで注意すべき
個人用サイト/ _config/config.yml
Group:
extensions:
- CustomGroup
ことの一つは、それがdev/build
が呼び出されるたびに設定EDIT_SITECONFIG
許可を更新しますです。これは、このアクセス権がCMS経由でオフにされた場合、次回にdev/build
が呼び出されたときにスイッチバックされることを意味します。
代わりに、最初のデータベースビルドでコンテンツ作成者グループを作成することもできます。これにより、EDIT_SITECONFIG
が1回だけ設定され、CMSによって上書きされます。
class CustomGroup extends DataExtension {
public function requireDefaultRecords() {
// Add default author group if no other group exists
$allGroups = Group::get();
if (!$allGroups->count()) {
$authorGroup = new Group();
$authorGroup->Code = 'content-authors';
$authorGroup->Title = _t('Group.DefaultGroupTitleContentAuthors', 'Content Authors');
$authorGroup->Sort = 1;
$authorGroup->write();
Permission::grant($authorGroup->ID, 'CMS_ACCESS_CMSMain');
Permission::grant($authorGroup->ID, 'CMS_ACCESS_AssetAdmin');
Permission::grant($authorGroup->ID, 'CMS_ACCESS_ReportAdmin');
Permission::grant($authorGroup->ID, 'SITETREE_REORGANISE');
Permission::grant($authorGroup->ID, 'EDIT_SITECONFIG');
}
parent::requireDefaultRecords();
}
}
どのようにグループを作成していますか?確かに、複数のグループにユーザーを追加することができ、必要な権限を持つグループ内にすべての必要な人員を配置できます。それでは、デフォルトが何であるかは関係ありません。 – Walf
それもうまくいくでしょう。しかし、私はSilverStripeのインストールごとにより自動化されたソリューションを作成しようとしています。したがって、これをモジュールでハードコーディングすることを好みます。 – Faloude