複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して
tomato > 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/15 21:04 |
---|
複数のブログを作成し、個々のブログを、管理するユーザーを作り、それ以外の人は編集不可としたいのですが、
上部のシステムナビからブログプラグインのメーニューで各ブログに行くことができるので、 編集できてしまいます。 このシステムナビのメニューを、ブログのユーザーに見せないようにするには、どうすればいいでしょうか? ブログの管理者のユーザーのユーザーグループを分けて作成し 各ページに閲覧不可設定を入れるしかないでしょうか? これだと結構面倒なので(ページ数が多いので、、、) このシステムナビのメニューを、ブログのユーザーに見せない方法があるとありがたいです。 ※システムナビのメニューがでなければ、上部メニューを非表示にして、よく使うメニューに 必要なメニューだけいれておけば、とりあえずは大丈夫かと、、、 他のユーザーのページをみていて、編集にはいるとダメですが、、、 お手数ですが、よろしくお願いします。 スマートURL: OFF |
tecking > Re: 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/15 22:29 |
---|
tomatoさん
手抜きのお手軽実装でよければ、baserCMSの isAdminUser() 関数を使って、ログインユーザーが管理者グループ以外のときCSSで「システムナビ」を非表示にしてしまってはどうでしょう?(一応検証済みです)
上記のコードを下記2つのテンプレートファイル 1. /app/webroot/theme/{お使いのテーマ}/Layouts/default.php 2. /app/webroot/theme/{お使いのテーマ}/Layouts/admin/default.php 内の
の直前に挿入してみてください。 2. がないときは /lib/Baser/View/Layouts/admin にある default.php をコピーして配置した後、コードを挿入してみてください。 |
tomato > Re: 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/16 18:47 |
---|
teckingさん
ご教授ありがとうございます。 実装してみたところ、管理側の方は、想定通り、メニューが非表示となったのですが、 ログインしたまま、記事側に遷移するとメニューが表示されたままとなります。 ソースを確認しても、ちゃんと はどちらのページでも表示されているのですが、、、 こちら、調整は可能でしょうか? お手数ですが、ご教授いただけますと幸いです。 よろしくお願い申し上げます。。 スマートURL: OFF |
tecking > Re: 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/16 23:28 |
---|
引用:
実装してみたところ、管理側の方は、想定通り、メニューが非表示となったのですが、 ちなみに、お使いのテーマって何でしょう? 自作でしょうか? 記事側でメニューが表示されるということは、 /app/webroot/theme/{お使いのテーマ}/Layouts/default.php が表示に使われていない可能性も考えられます。 ● 管理画面の[システム設定]−[サイト基本設定]の「オプション」欄、「ルートレイアウトテンプレート」 ● 各ブログの[設定]の「オプション」欄、「レイアウトテンプレート名」 はそれぞれ何になってますでしょうか? ここが「default」でない場合、それに相応する /app/webroot/theme/{お使いのテーマ}/Layouts/ 内のファイルを変える必要が出てくるかとおもいます。 |
tomato > Re: 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/17 14:03 |
---|
teckingさん
ご連絡ありがとうございます。 テーマは自作です。 contest-sampleを改変して作成しました。 == ● 管理画面の[システム設定]−[サイト基本設定]の「オプション」欄、「ルートレイアウトテンプレート」 ● 各ブログの[設定]の「オプション」欄、「レイアウトテンプレート名」 == こちら確認したところ、どちらも 「default」になっています。 お手数ですが、よろしくお願い申し上げます。 スマートURL: OFF |
tecking > Re: 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/17 22:19 |
---|
tomatoさん
こちらでも『Contest Sample』インストールして確認してみました。 (これまで、当方では『BCCOLORS』で検証してました) で、『Contest Sample』でうまくいかなかったのは、どうやら /app/webroot/js/admin/yuga.js を読み込まないことに理由があるようです。 yuga.js を読み込むと、「システムナビ」を表示する li 要素に lastChild というCSSクラスが付加されるのですが、yuga.js の読み込みがないため、私が示したコードでは「システムナビ」が非表示にならなかったみたいです。 ということで、一部改変して yuga.js を読み込まなくても使えるコードにしてみました。
これでいかがでしょうか? 一度お試しください。 それと、ご参考までに別解を。CSSに頼らず、エレメントファイルに条件分岐を加えてPHPレベルで非表示にする方法です。 1. /lib/Baser/View/Elements/admin/toolbar.php を /app/View/Elements/admin 内にコピー (/app/View/Elements 内にディレクトリがない場合は admin ディレクトリを新規作成) 2. コピーしたファイルを開き、下記を追加 120行目あたり
の直前に
を追加 140行目あたり
の直後にもう一つ
を追加 ログイン時に画面上部に表示されるツールバーのエレメントファイル(toolbar.php)に isAdminUser() による条件分岐を加えました。この方法だと、使っているテーマにかかわらず(テーマを運用途中で切り替えても)、管理者グループでログインしているときだけ「システムナビ」が表示されるようになります。 |
tomato > Re: 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/18 11:00 |
---|
teckingさん
ご教授ありがとうございます。 いつも親切なご回答ありがとうございます。 ご教授いただいた内容で実装したところ、解決しました!! 思っていたことができて、とても嬉しいです。 本当にありがとうございました!! スマートURL: OFF |