OSDN Git Service

管理者キー仕様削除。
[magic3/magic3.git] / include / container / admin_indexFrameContainer.php
1 <?php
2 /**
3  * index.php用コンテナクラス
4  *
5  * PHP versions 5
6  *
7  * LICENSE: This source file is licensed under the terms of the GNU General Public License.
8  *
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
15  */
16 require_once($gEnvManager->getContainerPath() . '/baseFrameContainer.php');
17
18 class admin_indexFrameContainer extends BaseFrameContainer
19 {
20         /**
21          * コンストラクタ
22          */
23         function __construct()
24         {
25                 // 親クラスを呼び出す
26                 parent::__construct();
27         }
28         /**
29          * フレーム単位のアクセス制御
30          *
31          * 同フレーム(同.phpファイル)での共通のアクセス制御を行う
32          *
33          * @param RequestManager $request               HTTPリクエスト処理クラス
34          */
35         function _checkAccess($request)
36         {
37                 global $gEnvManager;
38                 global $gAccessManager;
39                 global $gPageManager;
40
41                 // 受け付けるコマンドを判断
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){                         // ログアウト
48                         $ret = true;
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の表示
56                         // 管理者権限がなければ実行できない
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()){              // システム管理者の場合
64                                 $ret = true;
65                         } else if ($this->gEnv->isSystemManager($optionType)){                          // システム運用者の場合
66                                 $widgetId = $request->trimValueOf(M3_REQUEST_PARAM_WIDGET_ID);
67                                 
68                                 // ウィジェットが配置済みかどうかチェック。配置されていなければウィジェット設定画面へのアクセスは不可。
69                                 $canAccess = $this->_db->canAccessWidget($widgetId);
70                                 if ($canAccess){
71                                         // パーソナルモードでの起動の場合は、ウィジェットがパーソナルモード対応かどうかチェック
72                                         if ($this->gPage->isPersonalMode()){
73                                                 if ($this->_db->getWidgetInfo($widgetId, $row)){
74                                                         if ($row['wd_personal_mode']) $ret = true;                      // パーソナルモード対応であればアクセス可能
75                                                 }
76                                         } else {
77                                                 // パーソナルモードでなければすべてのウィジェット設定画面にアクセス可能
78                                                 $ret = true;
79                                         }
80                                 }
81
82                                 // システム運用者でアクセス権がない場合はログイン画面の代わりにグローバルエラーメッセージ出力
83                                 if (!$ret) $this->gInstance->getMessageManager()->addErrorMessage('アクセス権限がありません');
84                         }
85                 }
86                 // 管理機能アクセス可能なときはヘルプ出力する
87                 if ($ret) $gPageManager->setUseHelp(true);
88
89                 return $ret;
90         }
91         /**
92          * ビュー作成の前処理
93          *
94          * @param RequestManager $request               HTTPリクエスト処理クラス
95          */
96         function _preBuffer($request)
97         {
98         }
99         /**
100          * ビュー作成の後処理
101          *
102          * @param RequestManager $request               HTTPリクエスト処理クラス
103          */
104         function _postBuffer($request)
105         {
106         }
107         /**
108          * テンプレートファイルを設定
109          *
110          * @param RequestManager $request               HTTPリクエスト処理クラス
111          * @return                                                              テンプレートを固定にしたい場合はテンプレート名を返す。
112          *                                                                              テンプレートが任意の場合(変更可能な場合)は空文字列を返す。
113          */
114         function _setTemplate($request)
115         {
116                 global $gSystemManager;
117                 
118                 // 受け付けるコマンドを判断
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 '';              // デフォルトのテンプレートを使用
123                 } else {
124                         return $gSystemManager->defaultAdminTemplateId();
125                 }
126         }
127 }
128 ?>