7 * LICENSE: This source file is licensed under the terms of the GNU General Public License.
9 * @package Magic3 Framework
10 * @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
11 * @copyright Copyright 2006-2011 Magic3 Project.
12 * @license http://www.gnu.org/copyleft/gpl.html GPL License
13 * @version SVN: $Id: admin_indexFrameContainer.php 4297 2011-09-06 03:00:32Z fishbone $
14 * @link http://www.magic3.org
16 require_once($gEnvManager->getContainerPath() . '/baseFrameContainer.php');
18 class admin_indexFrameContainer extends BaseFrameContainer
23 function __construct()
26 parent::__construct();
31 * 同フレーム(同.phpファイル)での共通のアクセス制御を行う
33 * @param RequestManager $request HTTPリクエスト処理クラス
35 function _checkAccess($request)
38 global $gAccessManager;
42 $ret = false; // 戻り値リセット
43 $cmd = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_COMMAND);
44 if ($cmd == '' || // コマンドなし
45 $cmd == M3_REQUEST_CMD_CHANGE_TEMPLATE || // テンプレート変更
46 $cmd == M3_REQUEST_CMD_LOGIN || // ログイン
47 $cmd == M3_REQUEST_CMD_LOGOUT){ // ログアウト
49 } else if( $cmd == M3_REQUEST_CMD_SHOW_POSITION || // 表示位置を表示するとき
50 $cmd == M3_REQUEST_CMD_SHOW_POSITION_WITH_WIDGET || // 表示位置を表示するとき(ウィジェット付き)
51 $cmd == M3_REQUEST_CMD_SHOW_WIDGET || // ウィジェットの単体表示
52 $cmd == M3_REQUEST_CMD_DO_WIDGET || // ウィジェット単体実行
53 $cmd == M3_REQUEST_CMD_CONFIG_TEMPLATE || // テンプレートの設定
54 $cmd == M3_REQUEST_CMD_GET_WIDGET_INFO || // ウィジェット各種情報取得(AJAX用)
55 $cmd == M3_REQUEST_CMD_SHOW_PHPINFO){ // phpinfoの表示
57 //if ($gEnvManager->isSystemAdmin()){
58 if ($this->gEnv->isSystemManageUser()) $ret = true; // システム運用可能ユーザかどうか(2018/8/5変更)
59 } else if ($cmd == M3_REQUEST_CMD_CONFIG_WIDGET){ // ウィジェットの設定
60 // ### trueを返すとウィジェット設定画面が表示され、falseを返すとログイン画面が表示される。 ###
61 // ### ログイン画面の場合、グローバルメッセージが設定されている場合はログイン画面の代わりにエラーメッセージが表示される。###
62 $ret = false; // アクセス不可に初期化
63 if ($this->gEnv->isSystemAdmin()){ // システム管理者の場合
65 } else if ($this->gEnv->isSystemManager($optionType)){ // システム運用者の場合
66 $widgetId = $request->trimValueOf(M3_REQUEST_PARAM_WIDGET_ID);
68 // ウィジェットが配置済みかどうかチェック。配置されていなければウィジェット設定画面へのアクセスは不可。
69 $canAccess = $this->_db->canAccessWidget($widgetId);
71 // パーソナルモードでの起動の場合は、ウィジェットがパーソナルモード対応かどうかチェック
72 if ($this->gPage->isPersonalMode()){
73 if ($this->_db->getWidgetInfo($widgetId, $row)){
74 if ($row['wd_personal_mode']) $ret = true; // パーソナルモード対応であればアクセス可能
77 // パーソナルモードでなければすべてのウィジェット設定画面にアクセス可能
82 // システム運用者でアクセス権がない場合はログイン画面の代わりにグローバルエラーメッセージ出力
83 if (!$ret) $this->gInstance->getMessageManager()->addErrorMessage('アクセス権限がありません');
86 // 管理機能アクセス可能なときはヘルプ出力する
87 if ($ret) $gPageManager->setUseHelp(true);
94 * @param RequestManager $request HTTPリクエスト処理クラス
96 function _preBuffer($request)
102 * @param RequestManager $request HTTPリクエスト処理クラス
104 function _postBuffer($request)
110 * @param RequestManager $request HTTPリクエスト処理クラス
111 * @return テンプレートを固定にしたい場合はテンプレート名を返す。
112 * テンプレートが任意の場合(変更可能な場合)は空文字列を返す。
114 function _setTemplate($request)
116 global $gSystemManager;
119 $cmd = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_COMMAND);
120 if ($cmd == M3_REQUEST_CMD_SHOW_POSITION || // 表示位置を表示するとき
121 $cmd == M3_REQUEST_CMD_SHOW_POSITION_WITH_WIDGET){ // 表示位置を表示するとき(ウィジェット付き)
122 return ''; // デフォルトのテンプレートを使用
124 return $gSystemManager->defaultAdminTemplateId();