Standing on the Shoulder of Linus

Home / 2012 / 10月 / 25 / concrete5.6 のパーミッション(権限)を設定する

concrete5.6 のパーミッション(権限)を設定する

concrete5.6 のパーミッション(権限)を設定する方法です。バージョン5.5系とは大きく異なっているようです。

5.6で設定する方法は、公式フォーラムのHow to set permissions in 5.6 from code, or launch the dialog window for permissions from a modal?が参考になりました。assignPermissionsメソッドを使うと、設定できます。(5.5ではassignPermissionSetでした。)

さらに、concrete5 本体のバージョンで条件分岐できないか探してみると、SITE_APP_VERSION という定数が用意されていました。なので、PHPの version_compare 関数を用いると、version_compare(Config::get('SITE_APP_VERSION'),'5.6.0', '>=') でバージョン5.6.0以降かどうかを判定できます。

 // license AGPL
				if (version_compare(Config::get('SITE_APP_VERSION'),'5.6.0', '>=')) {
					// for concrete 5.6
					$pt = CollectionType::getByHandle("userprofile_detail");
					$newPage = $parentPage->add($pt,$data);

					$pkHandles = array('view_page');
					$newPage->assignPermissions(Group::getByID(GUEST_GROUP_ID), $pkHandles);
					$pkHandles = array('view_page');
					$pkHandles[] = 'view_page_versions';
					$pkHandles[] = 'edit_page_properties';
					$pkHandles[] = 'edit_page_contents';
					$pkHandles[] = 'approve_page_versions';
					$newPage->assignPermissions($userInfo, $pkHandles);
				} else {
					// for concrete 5.5
					$pxml->user[$uID]['uID'] = $uID;
					$pxml->user[$uID]['canRead'] = 1;
					$pxml->user[$uID]['canWrite'] = 1;
					$pxml->user[$uID]['canApproveVersions'] = 1;
					$pxml->user[$uID]['canReadVersions'] = 1;
					$newPage->assignPermissionSet($pxml);
				}

ソース全体は https://github.com/ounziw/userprofile/blob/1.0dev/controller.php をごらんください。

上記以外にもパーミッションはあります。管理画面のキャプチャを見ると、
View
View Versions
Preview Page As User
Edit Properties
Edit Contents
Edit Speed Settings
Change Theme
Change Page Type
Edit Permissions
Delete
Delete Versions
Approve Changes
Add Sub-Page
Move or Copy Page
Schedule Guest Access
があるようです。

関連

Posted in concrete5 | Tagged オープンソース, 管理画面カスタマイズ
← WordPress なら、カテゴリ毎の月別アーカイブもデフォルト対応 git でブランチを切って開発する →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • 6年使ったイーモバイル(Y!mobile)を解約手続。店頭でSIM返却
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.