return $isAdmin;
}
/**
+ * 現在アクセス中のユーザにシステム運用者かどうかを返す
+ *
+ * @param string $optionType ユーザオプションタイプ
+ * @return bool true=システム運用者、false=システム運用者ではない
+ */
+ public function isSystemManager(&$optionType)
+ {
+ $isManager = false;
+ $userInfo = $this->getCurrentUserInfo();
+ if (is_null($userInfo)){ // ログインしていない場合
+ } else {
+ if ($userInfo->userType == UserInfo::USER_TYPE_MANAGER){ // システム運用者の場合
+ $optionType = $userInfo->optionType;
+ $isManager = true;
+ }
+ }
+ return $isManager;
+ }
+ /**
* 現在アクセス中のユーザにシステム運用権限があるかどうかを返す
*
* @return bool true=システム運用可、false=システム運用不可
const TASK_DB_ACCESSLOG = 'dbaccesslog'; // DB管理アクセスログ
const TASK_LANDINGPAGE = 'landingpage'; // ランディングページ管理
const TASK_LANDINGPAGE_DETAIL = 'landingpage_detail'; // ランディングページ管理(詳細)
+ const TASK_TASKACCESS = 'taskaccess'; // 管理画面アクセス制御
const TASK_TEST = 'test'; // テスト画面
/**
--- /dev/null
+<?php
+/**
+ * コンテナクラス
+ *
+ * PHP versions 5
+ *
+ * LICENSE: This source file is licensed under the terms of the GNU General Public License.
+ *
+ * @package Magic3 Framework
+ * @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
+ * @copyright Copyright 2006-2018 Magic3 Project.
+ * @license http://www.gnu.org/copyleft/gpl.html GPL License
+ * @version SVN: $Id$
+ * @link http://www.magic3.org
+ */
+require_once($gEnvManager->getCurrentWidgetContainerPath() . '/admin_mainBaseWidgetContainer.php');
+
+class admin_mainTaskaccessWidgetContainer extends admin_mainBaseWidgetContainer
+{
+ /**
+ * コンストラクタ
+ */
+ function __construct()
+ {
+ // 親クラスを呼び出す
+ parent::__construct();
+ }
+ /**
+ * テンプレートファイルを設定
+ *
+ * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
+ * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
+ *
+ * @param RequestManager $request HTTPリクエスト処理クラス
+ * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
+ * @return string テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
+ */
+ function _setTemplate($request, &$param)
+ {
+ return 'taskaccess.tmpl.html';
+ }
+ /**
+ * テンプレートにデータ埋め込む
+ *
+ * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
+ *
+ * @param RequestManager $request HTTPリクエスト処理クラス
+ * @param object $param 任意使用パラメータ。_setTemplate()と共有。
+ * @param なし
+ */
+ function _assign($request, &$param)
+ {
+ // 管理用URL設定
+ $this->tmpl->addVar("_widget", "admin_url", $this->gEnv->getDefaultAdminUrl());
+ }
+}
+?>
private $redirectUrl; // リダイレクト先URL
private $content; // メッセージ用コンテンツ
private $permitTask; // 実行許可タスク
+ private $permitTask_manager; // 実行許可タスク(システム運用者用)
+ private $permitTask_page_manager; // 実行許可タスク(ページ運用者用)
const CF_USE_CONTENT_MAINTENANCE = 'use_content_maintenance'; // メンテナンス画面に汎用コンテンツを使用するかどうか
const CF_USE_CONTENT_ACCESS_DENY = 'use_content_access_deny'; // アクセス不可画面に汎用コンテンツを使用するかどうか
const CF_USE_CONTENT_PAGE_NOT_FOUND = 'use_content_page_not_found'; // 存在しないページ画面に汎用コンテンツを使用するかどうか
// 親クラスを呼び出す
parent::__construct();
- $this->permitTask = array('test', 'initwizard'); // 実行許可タスク
+ // 実行許可タスク
+ $this->permitTask = array('test', 'initwizard');
+ $this->permitTask_page_manager = array('top');; // 実行許可タスク(ページ運用者用)
+ // システム運用者用の実行許可タスクは設定から読み込む
+ $this->permitTask_manager = array('top');; // 実行許可タスク(システム運用者用)
}
/**
* ディスパッチ処理(メインコンテナのみ実行)
// #############################################################################################
// ##### 管理画面ダッシュボードへのアクセス制御はここで行う #####
// #############################################################################################
-// if ($this->gEnv->isSystemAdmin()){ // システム管理者の場合
- if ($this->gEnv->isSystemManageUser()){ // システム運用可能の場合(2018/8/5変更)
+ // システム管理者か、システム運用者でアクセス可能なタスクかどうかをチェック
+ $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
+ if (empty($task)) $task = 'top'; // トップメニュー
+
+ if ($this->gEnv->isSystemAdmin() ||
+ ($this->gEnv->isSystemManageUser() && in_array($task, $this->permitTask_manager))){ // システム運用可能の場合(2018/8/5変更)
+
// ##### ポップアップメッセージ表示状態を取得 #####
$popupStatus = intval($this->getWidgetSession(self::SK_SHOW_POPUP_STATUS));
if (empty($popupStatus)){ // 1度もメッセージが表示されていない場合
}
// 表示画面を決定
- $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
$taskSrc = $task;
- if (empty($task) || $task == 'menuhelp'){ // デフォルト値
+ if ($task == 'menuhelp'){ // デフォルト値
$task = 'top'; // トップメニュー
// } else if ($task == 'menu'){ // マスター管理
// $task = 'pageinfo'; // ページ情報をデフォルトにする
case 'tenantserver': // テナントサーバ管理
case 'analyzecalc': // アクセス解析集計
case 'analyzegraph': // アクセス解析グラフ表示
+ case self::TASK_TASKACCESS: // 管理画面アクセス制御
// 管理画面の設定用
case 'menu': // 管理画面設定メニュー
--- /dev/null
+/**
+ * 表示データ作成用テンプレート(patTemplate)
+ *
+ * LICENSE: This source file is licensed under the terms of the GNU General Public License.
+ *
+ * @package Magic3 Framework
+ * @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
+ * @copyright Copyright 2006-2018 Magic3 Project.
+ * @license http://www.gnu.org/copyleft/gpl.html GPL License
+ * @version SVN: $Id$
+ * @link http://www.magic3.org
+ */
+<patTemplate:tmpl name="_widget">
+<script type="text/javascript">
+//<![CDATA[
+function update(){
+ if (!window.confirm('設定を更新しますか?')) return false;
+
+ document.main.act.value = 'update';
+ document.main.submit();
+ return true;
+}
+$(function(){
+ // テーブル作成
+ m3SetConfigTable('config_table');
+});
+//]]>
+</script>
+<div class="m3config_container">
+<!-- m3:ErrorMessage -->
+<form method="post" name="main">
+<input type="hidden" name="task" value="taskaccess" />
+<input type="hidden" name="act" />
+<h3><span {_HELP_TASKACCESS}>システム運用者アクセス制御</span></h3>
+<table id="config_table">
+ <tbody>
+ <tr>
+ <th>使用可能タスク</th>
+ <td>
+<patTemplate:tmpl name="content_type_list">
+<div class="checkbox"><label><input type="checkbox" name="item{INDEX}_selected" {CHECKED}>{NAME}</label></div>
+</patTemplate:tmpl>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<div class="well m3config_update_buttons"><input type="button" class="button" onclick="update();" value="更新" /></div>
+</form>
+</div>
+</patTemplate:tmpl>