いつもお世話になっております。
管理画面で、ログインユーザーのロール及びリソース別に、
リソースの編集画面に表示される保存、複製、削除、等を個別に非表示にしたいと
考えております。
また同様に、管理画面上部メニューにある「メイン→検索」や「レポート」を、
ログインユーザーのロール別に非表示にしたいと考えております。
これらはどうすれば実現できますでしょうか。
ManagerManagerで非表示にできないかとも思いましたが、自分で調べた限りでは実現方法がわかりませんでした。
なお、管理画面上部メニューについては、以下の記事で対応できるかと思いましたが、
実際に設定しても非表示にできませんでした。
http://forum.modx.jp/viewtopic.php?f=16 ... ager#p4232
ManagerManagerのバージョン: 0.3.11
お知恵を貸して頂けないでしょうか、よろしくお願い致します。
-----
ご利用のサーバ:ロリポップ
MODXのバージョン:1.0.6J-r4
PHPのバージョン:5.2.17
MySQLのバージョン:5.1.59-community-log
ブラウザ:Firefox 17.0.1
-----
リソース編集画面で保存、削除、等を非表示にしたい
Re: リソース編集画面で保存、削除、等を非表示にしたい
設定方法としては少し分かりにくいかもしれませんが、ロール設定で保存・複製・削除の権限を制限すれば、それらのボタンも表示されなくなります。リソースごとにコントロールするのは、動的に権限を書き換えると可能かもしれません。明日になりますが、もしよければ説明いたします。あるいは、グループ管理機能を使うとよいかもしれません。aru さんが書きました:管理画面で、ログインユーザーのロール及びリソース別に、
リソースの編集画面に表示される保存、複製、削除、等を個別に非表示にしたいと
考えております。
同梱されているManagerManagerウィジェットでは、管理画面のトップメニュー構成を操作することはできないです。それ以前に、割り込むシステムイベントが存在しないためプラグインでは対応できません。aru さんが書きました:また同様に、管理画面上部メニューにある「メイン→検索」や「レポート」を、
ログインユーザーのロール別に非表示にしたいと考えております。
これらはどうすれば実現できますでしょうか。
ManagerManagerで非表示にできないかとも思いましたが、自分で調べた限りでは実現方法がわかりませんでした。
※システムイベントの実装は特に難しくなく、検討中です。
コアファイルを少し改造する方法でよければ、対応は可能です。この部分も近いうちにプラグイン対応できるようにする予定です。
Re: リソース編集画面で保存、削除、等を非表示にしたい
yamaさん、いつもありがとうございます。
大変お手数かと思いますが、よろしくお願い致します。
教えて頂けると嬉しいです。よろしくお願いします。yama さんが書きました:リソースごとにコントロールするのは、動的に権限を書き換えると可能かもしれません。明日になりますが、もしよければ説明いたします。あるいは、グループ管理機能を使うとよいかもしれません。
コアファイルを改造する方法について、お時間のある時で結構ですのでお願いできればと思います。yama さんが書きました:同梱されているManagerManagerウィジェットでは、管理画面のトップメニュー構成を操作することはできないです。それ以前に、割り込むシステムイベントが存在しないためプラグインでは対応できません。
※システムイベントの実装は特に難しくなく、検討中です。
コアファイルを少し改造する方法でよければ、対応は可能です。この部分も近いうちにプラグイン対応できるようにする予定です。
大変お手数かと思いますが、よろしくお願い致します。
Re: リソース編集画面で保存、削除、等を非表示にしたい
今日説明するつもりでしたが、時間がとれなかったので簡単なサンプルを作りました。また後日、トップメニューなど残りの件を見てみます
上記のコードをプラグイン新規作成画面に貼り付けて、OnManagerPageInitにチェックを入れて保存します。
case '12':と書いてあるところの12は任意のリソースIDです。
(PHPは多少分かりますでしょうか?)
コード: 全て選択
if(!isset($_GET['a'])) return;
if($_GET['a']==27 && isset($_GET['id'])) {
switch($_GET['id']) {
case '12':
$_SESSION['mgrPermissions']['new_document'] = '0';
$_SESSION['mgrPermissions']['delete_document'] = '0';
$_SESSION['mgrPermissions']['save_document'] = '0';
$_SESSION['ChangedPermissions'] = '1';
break;
}
}
elseif(isset($_SESSION['ChangedPermissions']) && $_SESSION['ChangedPermissions']==='1')
{
$role = $_SESSION['mgrRole'];
$tbl_user_roles = $modx->getFullTableName('user_roles');
$rs = $modx->db->select('*',$tbl_user_roles,"id='{$role}'");
$row = $modx->db->getRow($rs);
$_SESSION['mgrPermissions'] = $row;
$_SESSION['ChangedPermissions'] = '0';
}
case '12':と書いてあるところの12は任意のリソースIDです。
(PHPは多少分かりますでしょうか?)
Re: リソース編集画面で保存、削除、等を非表示にしたい
yamaさん
サンプルをありがとうございます。
返事が遅くなって申し訳ありません。
早速コードをプラグインに張り付けて、指定リソースの保存、複製、削除、等が表示されない
事を確認しました。
ただ変数の意味が分からず、変数の名称から処理の内容を想像している状態です。
・・・ リソース削除権限
・・・ 修正権限?
この辺りの一覧とそれが何を意味するか分るようなサイトなどは無いでしょうか。
以下の部分などは、何をしているのかよく分かっていません。
なお、特定のロールでのみ非表示にしたいと思っていますので、コードを変えて色々試してみようと思います。
サンプルをありがとうございます。
返事が遅くなって申し訳ありません。
早速コードをプラグインに張り付けて、指定リソースの保存、複製、削除、等が表示されない
事を確認しました。
条件判定などについては調べつつ見ておりますので、簡単な内容は理解できてると思います。yama さんが書きました: (PHPは多少分かりますでしょうか?)
ただ変数の意味が分からず、変数の名称から処理の内容を想像している状態です。
コード: 全て選択
$_SESSION['mgrPermissions']['delete_document']
コード: 全て選択
$_SESSION['ChangedPermissions']
この辺りの一覧とそれが何を意味するか分るようなサイトなどは無いでしょうか。
以下の部分などは、何をしているのかよく分かっていません。
コード: 全て選択
elseif(isset($_SESSION['ChangedPermissions']) && $_SESSION['ChangedPermissions']==='1')
{
$role = $_SESSION['mgrRole'];
$tbl_user_roles = $modx->getFullTableName('user_roles');
$rs = $modx->db->select('*',$tbl_user_roles,"id='{$role}'");
$row = $modx->db->getRow($rs);
$_SESSION['mgrPermissions'] = $row;
$_SESSION['ChangedPermissions'] = '0';
}
お手数をおかけしてすみません。お時間のあるときに見て頂ければ幸いです。yama さんが書きました:また後日、トップメニューなど残りの件を見てみます
Re: リソース編集画面で保存、削除、等を非表示にしたい
もしかするとjQueryを使うほうが簡単で応用範囲も広くてよいかも?あとで考えてみますね
可能であればMODXを最新版にできれば、管理画面内でjQueryを簡単に使えます。
http://modx.jp/news/148.html
1.0.6J-r5で大幅な変更が入ってますので、アップデートする場合は上記ページ内容に目を通していただければと思います。
可能であればMODXを最新版にできれば、管理画面内でjQueryを簡単に使えます。
http://modx.jp/news/148.html
1.0.6J-r5で大幅な変更が入ってますので、アップデートする場合は上記ページ内容に目を通していただければと思います。
Re: リソース編集画面で保存、削除、等を非表示にしたい
お返事ありがとうございます。
なお、MODXのバージョンアップについては、既存部分への影響が大きいと思われますので
出来れば避けたいと考えています。
申し訳ありません。
なお、MODXのバージョンアップについては、既存部分への影響が大きいと思われますので
出来れば避けたいと考えています。
申し訳ありません。
Re: リソース編集画面で保存、削除、等を非表示にしたい
元の権限設定に戻すという処理なので、ここはこのまま使っていただくのがよいかも?aru さんが書きました: 以下の部分などは、何をしているのかよく分かっていません。コード: 全て選択
elseif(isset($_SESSION['ChangedPermissions']) && $_SESSION['ChangedPermissions']==='1') { $role = $_SESSION['mgrRole']; $tbl_user_roles = $modx->getFullTableName('user_roles'); $rs = $modx->db->select('*',$tbl_user_roles,"id='{$role}'"); $row = $modx->db->getRow($rs); $_SESSION['mgrPermissions'] = $row; $_SESSION['ChangedPermissions'] = '0'; }
(明日から週明けまでお返事が滞るかもしれません)
Re: リソース編集画面で保存、削除、等を非表示にしたい
了解しました。ありがとうございます。yama さんが書きました:元の権限設定に戻すという処理なので、ここはこのまま使っていただくのがよいかも?
お忙しいところ時間を割いていただき、ありがとうございました。yama さんが書きました:(明日から週明けまでお返事が滞るかもしれません)
トップメニューの件につきましては、週明け以降等お時間がある時に見て頂けたら幸いです。