■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して

tomato > 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/15 21:04
複数のブログを作成し、個々のブログを、管理するユーザーを作り、それ以外の人は編集不可としたいのですが、
上部のシステムナビからブログプラグインのメーニューで各ブログに行くことができるので、
編集できてしまいます。
このシステムナビのメニューを、ブログのユーザーに見せないようにするには、どうすればいいでしょうか?
ブログの管理者のユーザーのユーザーグループを分けて作成し
各ページに閲覧不可設定を入れるしかないでしょうか?
これだと結構面倒なので(ページ数が多いので、、、)
このシステムナビのメニューを、ブログのユーザーに見せない方法があるとありがたいです。
※システムナビのメニューがでなければ、上部メニューを非表示にして、よく使うメニューに
必要なメニューだけいれておけば、とりあえずは大丈夫かと、、、
他のユーザーのページをみていて、編集にはいるとダメですが、、、

お手数ですが、よろしくお願いします。

スマートURL: OFF
レンタルサーバー名:ロリポップ
セーフモード:Off
データベース: SQLite
baserCMSバージョン: 3.0.7
CakePHPバージョン: 2.5.3
PHPスキル(自己評価):全くわからない

tecking > Re: 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/15 22:29
tomatoさん

手抜きのお手軽実装でよければ、baserCMSの isAdminUser() 関数を使って、ログインユーザーが管理者グループ以外のときCSSで「システムナビ」を非表示にしてしまってはどうでしょう?(一応検証済みです)

<?php if (!$this->BcBaser->isAdminUser()): ?>
<style type="text/css">
<!--
#UserMenu li.lastChild {
	display: none;
}
-->
</style>
<?php endif ?>

上記のコードを下記2つのテンプレートファイル

1. /app/webroot/theme/{お使いのテーマ}/Layouts/default.php
2. /app/webroot/theme/{お使いのテーマ}/Layouts/admin/default.php

内の

<?php $this->BcBaser->scripts() ?>
</head>

の直前に挿入してみてください。

2. がないときは /lib/Baser/View/Layouts/admin にある default.php をコピーして配置した後、コードを挿入してみてください。
tomato > Re: 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/16 18:47
teckingさん

ご教授ありがとうございます。

実装してみたところ、管理側の方は、想定通り、メニューが非表示となったのですが、
ログインしたまま、記事側に遷移するとメニューが表示されたままとなります。

ソースを確認しても、ちゃんと

はどちらのページでも表示されているのですが、、、

こちら、調整は可能でしょうか?
お手数ですが、ご教授いただけますと幸いです。
よろしくお願い申し上げます。。

スマートURL: OFF
レンタルサーバー名:ロリポップ
セーフモード:Off
データベース: SQLite
baserCMSバージョン: 3.0.7
CakePHPバージョン: 2.5.3
PHPスキル(自己評価):全くわからない

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
レンタルサーバー名:ロリポップ
セーフモード:Off
データベース: SQLite
baserCMSバージョン: 3.0.7
CakePHPバージョン: 2.5.3
PHPスキル(自己評価):全くわからない

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 を読み込まなくても使えるコードにしてみました。

<?php if (!$this->BcBaser->isAdminUser()): ?>
<style type="text/css">
<!--
#UserMenu li:last-of-type {
	display: none;
}
-->
</style>
<?php endif ?>

これでいかがでしょうか? 一度お試しください。


それと、ご参考までに別解を。CSSに頼らず、エレメントファイルに条件分岐を加えてPHPレベルで非表示にする方法です。

1. /lib/Baser/View/Elements/admin/toolbar.php を /app/View/Elements/admin 内にコピー
(/app/View/Elements 内にディレクトリがない場合は admin ディレクトリを新規作成)
2. コピーしたファイルを開き、下記を追加

120行目あたり
<?php if (!empty($user) && in_array('admin', $currentUserAuthPrefixes)): ?>

の直前に

<?php if ($this->BcBaser->isAdminUser()): ?>

を追加

140行目あたり
<?php endif ?>

の直後にもう一つ

<?php endif ?>

を追加

ログイン時に画面上部に表示されるツールバーのエレメントファイル(toolbar.php)に isAdminUser() による条件分岐を加えました。この方法だと、使っているテーマにかかわらず(テーマを運用途中で切り替えても)、管理者グループでログインしているときだけ「システムナビ」が表示されるようになります。
tomato > Re: 複数のブログを作成し、個々のブログを他の人に管理してもらう場合の編集権限に関して @ 2015/11/18 11:00
teckingさん

ご教授ありがとうございます。

いつも親切なご回答ありがとうございます。

ご教授いただいた内容で実装したところ、解決しました!!

思っていたことができて、とても嬉しいです。

本当にありがとうございました!!

スマートURL: OFF
レンタルサーバー名:ロリポップ
セーフモード:Off
データベース: SQLite
baserCMSバージョン: 3.0.7
CakePHPバージョン: 2.5.3
PHPスキル(自己評価):全くわからない

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
40 人のユーザが現在オンラインです。 (40 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 40