--- /dev/null
+-- *
+-- * バージョンアップ用スクリプト
+-- *
+-- * 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-2015 Magic3 Project.
+-- * @license http://www.gnu.org/copyleft/gpl.html GPL License
+-- * @version SVN: $Id$
+-- * @link http://www.magic3.org
+-- *
+-- --------------------------------------------------------------------------------------------------
+-- バージョンアップ用スクリプト
+-- --------------------------------------------------------------------------------------------------
+
+-- *** システムベーステーブル ***
+
+-- Wiki設定マスター
+DELETE FROM wiki_config;
+INSERT INTO wiki_config
+(wg_id, wg_value, wg_name) VALUES
+('password', '', '共通パスワード'),
+('default_page', 'FrontPage', 'デフォルトページ'),
+('whatsnew_page', 'RecentChanges', '最終更新ページ'),
+('whatsdeleted_page', 'RecentDeleted', '最終削除ページ'),
+('auth_type', 'admin', '認証タイプ'),
+('show_page_title', '1', 'タイトル表示するかどうか'),
+('show_page_related', '1', '関連ページを表示するかどうか'),
+('show_page_attach_files', '1', '添付ファイルを表示するかどうか'),
+('show_page_last_modified', '1', '最終更新を表示するかどうか'),
+('show_toolbar_for_all_user', '0', 'すべてのユーザにツールバーを表示するかどうか'),
+('user_limited_freeze', '0', '凍結・解凍機能のユーザ制限');
$showPageAttachFiles = $request->trimCheckedValueOf('item_showpageattachfiles'); // 添付ファイルを表示するかどうか
$showPageLastModified = $request->trimCheckedValueOf('item_showlastmodified'); // 最終更新を表示するかどうか
$showToolbarForAllUser = $request->trimCheckedValueOf('item_show_toolbar_for_all_user'); // ツールバーを表示するかどうか
+ $userLimitedFreeze = $request->trimCheckedValueOf('item_user_limited_freeze'); // 凍結・解凍機能のユーザ制限
$replaceNew = false; // データを再取得するかどうか
if (empty($act)){// 初期起動時
if ($ret) $ret = self::$_mainDb->updateConfig(wiki_mainCommonDef::CF_SHOW_TOOLBAR_FOR_ALL_USER, $showToolbarForAllUser);// ツールバーを表示するかどうか
+ if ($ret) $ret = self::$_mainDb->updateConfig(wiki_mainCommonDef::CF_USER_LIMITED_FREEZE, $userLimitedFreeze); // 凍結・解凍機能のユーザ制限
+
if ($ret){
$this->setMsg(self::MSG_GUIDANCE, 'データを更新しました');
$replaceNew = true; // データ再取得
if ($showPageLastModified == '') $showPageLastModified = '1'; // 最終更新を表示
$showToolbarForAllUser = self::$_mainDb->getConfig(wiki_mainCommonDef::CF_SHOW_TOOLBAR_FOR_ALL_USER);// ツールバーを表示するかどうか
if ($showToolbarForAllUser == '') $showToolbarForAllUser = '0'; // ツールバーを表示するかどうか
+ $userLimitedFreeze = self::$_mainDb->getConfig(wiki_mainCommonDef::CF_USER_LIMITED_FREEZE);// 凍結・解凍機能のユーザ制限
+ if ($userLimitedFreeze == '') $userLimitedFreeze = '0';
}
// 認証方法メニュー作成
$this->tmpl->addVar("_widget", "show_page_attach_files", $this->convertToCheckedString($showPageAttachFiles)); // 添付ファイルを表示するかどうか
$this->tmpl->addVar("_widget", "show_last_modified", $this->convertToCheckedString($showPageLastModified)); // 最終更新を表示するかどうか
$this->tmpl->addVar("_widget", "show_toolbar_for_all_user", $this->convertToCheckedString($showToolbarForAllUser)); // ツールバーを表示するかどうか
+ $this->tmpl->addVar("_widget", "user_limited_freeze", $this->convertToCheckedString($userLimitedFreeze)); // 凍結・解凍機能のユーザ制限
// アップロードディレクトリ
//$uploadDir = $this->gEnv->getCurrentWidgetRootPath() . '/upload'; // 暫定
const CF_SHOW_PAGE_ATTACH_FILES = 'show_page_attach_files'; // 添付ファイル
const CF_SHOW_PAGE_LAST_MODIFIED = 'show_page_last_modified'; // 最終更新
const CF_SHOW_TOOLBAR_FOR_ALL_USER = 'show_toolbar_for_all_user'; // ツールバーを表示するかどうか
+ const CF_USER_LIMITED_FREEZE = 'user_limited_freeze'; // 凍結・解凍機能のユーザ制限
// ##### デフォルト値 #####
const DEFAULT_DEFAULT_PAGE = 'FrontPage'; // デフォルトページ
if ($this->isPage){
$toolbar .= ' ';
if ($pageEditable){
- $toolbar .= $this->createToolbarButton('edit');
- if ($this->isRead && WikiConfig::isPageFreeze()){
+ if (WikiConfig::isUserWithFreezeAuth()){ // 解凍・凍結権限ありの場合
+ $toolbar .= $this->createToolbarButton('edit');
+ } else if (!$this->isFreeze){ // 解凍・凍結権限なしの場合は、凍結されている場合は編集ボタン非表示
+ $toolbar .= $this->createToolbarButton('edit');
+ }
+
+ // if ($this->isRead && WikiConfig::isPageFreeze() && WikiConfig::getFreezeButtonVisibility()){ // 凍結・解凍ボタンを表示する場合
+ if ($this->isRead && WikiConfig::isPageFreeze() && WikiConfig::isUserWithFreezeAuth()){ // 解凍・凍結権限ありの場合
if ($this->isFreeze){
$toolbar .= $this->createToolbarButton('unfreeze');
} else {
*
* @package Magic3 Framework
* @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
- * @copyright Copyright 2006-2008 Magic3 Project.
+ * @copyright Copyright 2006-2015 Magic3 Project.
* @license http://www.gnu.org/copyleft/gpl.html GPL License
* @version SVN: $Id: index.php 1176 2008-11-05 04:23:39Z fishbone $
* @link http://www.magic3.org
global $HELP;
$HELP['auth_label']['title'] = '認証方法';
-$HELP['auth_label']['body'] = 'Wikiコンテンツのデータの編集を許可するユーザ認証方法を指定します。<br>「管理権限ユーザ」は管理権限のあるユーザでログインしたユーザのみ編集可能です。<br>「ログインユーザ」は管理権限に関係なくログインしたユーザのみ編集可能です。<br>「共通パスワード」はログインに関係なく共通のパスワードを入力したユーザが編集可能です。';
+$HELP['auth_label']['body'] = 'Wikiコンテンツのデータの編集を許可するユーザ認証方法を指定します。システム管理者またはシステム運用者は認証方法に関わらず常に編集可能です。<br>「管理権限ユーザ」はシステム管理者またはシステム運用者のみ編集可能です。<br>「ログインユーザ」は管理権限に関係なくログインしたユーザのみ編集可能です。<br>「共通パスワード」はログインに関係なく共通のパスワードを入力したユーザが編集可能です。';
$HELP['default_page_label']['title'] = 'デフォルト画面';
$HELP['default_page_label']['body'] = 'デフォルトで表示するWikiページを指定します。実際に存在するWikiページ名を指定します。';
$HELP['visible_items_label']['title'] = '表示項目';
return FALSE; // Without exit
} else {
// With exit
- $body = $title = str_replace('$1',
- htmlspecialchars(strip_bracket($page)), $_title_cannotedit);
- // modified for Magic3 by naoki on 2008/10/10
- /*if (is_freeze($page))
- $body .= '(<a href="' . $script . '?cmd=unfreeze&page=' .
- rawurlencode($page) . '">' . $_msg_unfreeze . '</a>)';*/
- if (is_freeze($page)){
+ $body = $title = str_replace('$1', htmlspecialchars(strip_bracket($page)), $_title_cannotedit);
+
+ if (is_freeze($page) && WikiConfig::isUserWithFreezeAuth()){ // 解凍・凍結権限ありの場合
$body .= '(<a href="' . $script . WikiParam::convQuery('?cmd=unfreeze&page=' . rawurlencode($page)) . '">' . $_msg_unfreeze . '</a>)';
}
$page = str_replace('$1', make_search($page), $_title_cannotedit);
- // modified for Magic3 by naoki on 2008/9/29
- //catbody($title, $page, $body);
- //catbody($body);
- //exit;
}
}
}
return $ret;
}
/**
+ * アクセス中のユーザにページ凍結・解凍権限があるかを判断
+ *
+ * @return bool true=権限あり、false=権限なし
+ */
+ public static function isUserWithFreezeAuth()
+ {
+ global $gEnvManager;
+
+ // 凍結解凍権限を制限する場合は、システム運用権限ユーザのみが凍結解凍権限あり
+ $ret = false;
+ if (self::$_configArray[wiki_mainCommonDef::CF_USER_LIMITED_FREEZE]){
+ if ($gEnvManager->isSystemManageUser()) $ret = true;
+ } else {
+ if (self::isUserWithEditAuth()) $ret = true;
+ }
+ return $ret;
+ }
+ /**
* アクセス中のユーザにデータ参照権限があるかを判断
*
* @return bool true=権限あり、false=権限なし
if (!check_editable($page, true, true)){ // 編集不可のとき
$body = $title = str_replace('$1', make_pagelink($page), $_title_cannotedit);
- if (is_freeze($page)){
+ if (is_freeze($page) && WikiConfig::isUserWithFreezeAuth()){ // 解凍・凍結権限ありの場合
$body .= '(<a href="' . $script . WikiParam::convQuery('?cmd=unfreeze&page=' . rawurlencode($page)) . '">' . $_msg_unfreeze . '</a>)';
}
return array('msg' => $title, 'body' => $body);
$body = str_replace('$1', htmlspecialchars(strip_bracket($page)), $_title_isfreezed);
//} else if ($pass != '' && pkwk_login($pass)) {
} else if (!empty($action)){ // 「凍結」ボタン実行の場合
- // ページをロックする
- WikiPage::lockPage($page, true);
+ // 解凍・凍結権限ありの場合のみ凍結可能
+ if (WikiConfig::isUserWithFreezeAuth()){ // 解凍・凍結権限ありの場合
+ // ページをロックする
+ WikiPage::lockPage($page, true);
- // Update
- is_freeze($page, TRUE);
- WikiParam::setCmd('read');
- $msg = $_title_freezed;
- $body = '';
+ // Update
+ is_freeze($page, TRUE);
+ WikiParam::setCmd('read');
+ $msg = $_title_freezed;
+ $body = '';
+ }
// } else if (!WikiConfig::isPasswordAuth() && !$editAuth){ // パスワード認証以外(管理権限ユーザまたはログインユーザ)の場合で、編集権限がない場合
// $body = "<p><strong>$_msg_no_operation_allowed</strong></p>\n";
} else {
$body = str_replace('$1', htmlspecialchars(strip_bracket($page)), $_title_isunfreezed);
//} else if ($pass != '' && pkwk_login($pass)) {
} else if (!empty($action)){ // 「解凍」ボタン実行の場合
- // ページをロックを解除
- WikiPage::lockPage($page, false);
+ // 解凍・凍結権限ありの場合のみ凍結可能
+ if (WikiConfig::isUserWithFreezeAuth()){ // 解凍・凍結権限ありの場合
+ // ページをロックを解除
+ WikiPage::lockPage($page, false);
- // Update
- is_freeze($page, TRUE);
- if (PLUGIN_UNFREEZE_EDIT) {
- WikiParam::setCmd('read');
- $msg = $_title_unfreezed;
- //$body = edit_form($page, $postdata);
- $body = edit_form($page, get_source($page, true));
- } else {
- WikiParam::setCmd('read');
- $msg = $_title_unfreezed;
- $body = '';
+ // Update
+ is_freeze($page, TRUE);
+ if (PLUGIN_UNFREEZE_EDIT) {
+ WikiParam::setCmd('read');
+ $msg = $_title_unfreezed;
+ //$body = edit_form($page, $postdata);
+ $body = edit_form($page, get_source($page, true));
+ } else {
+ WikiParam::setCmd('read');
+ $msg = $_title_unfreezed;
+ $body = '';
+ }
}
// } else if (!WikiConfig::isPasswordAuth() && !$editAuth){ // パスワード認証以外(管理権限ユーザまたはログインユーザ)の場合で、編集権限がない場合
// $body = "<p><strong>$_msg_no_operation_allowed</strong></p>\n";
</td>\r
</tr>\r
<tr>\r
+ <th><span {_HELP_DEFAULT_USER_ACCESS}>アクセス制御</span></th>\r
+ <td>\r
+ <div class="form-group clearfix">\r
+ <div class="checkbox m3config_inline_item"><label><input type="checkbox" name="item_user_limited_freeze" {USER_LIMITED_FREEZE} />凍結・解凍機能をシステム管理者,運用者に制限</label></div>\r
+ </div>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
<th><span {_HELP_DEFAULT_PAGE_LABEL}>画面</span></th>\r
<td><div class="form-group clearfix"><div class="form-control-static col-sm-2 m3config_item text-right">デフォルト:</div><div class="col-sm-6 m3config_item"><input type="text" name="item_default_page" value="{DEFAULT_PAGE}" maxlength="50" /></div></div>\r
<div class="form-group clearfix"><div class="form-control-static col-sm-2 m3config_item text-right">最終更新:</div><div class="col-sm-6 m3config_item"><input type="text" name="item_whatsnew_page" value="{WHATSNEW_PAGE}" maxlength="50" /></div></div>\r
</div>\r
<h4>ツールバー</h4>\r
<div class="form-group clearfix"><div class="checkbox"><label><input type="checkbox" name="item_show_toolbar_for_all_user" {SHOW_TOOLBAR_FOR_ALL_USER} />常に表示</label></div></div>\r
- <div class="form-group clearfix">\r
- <span>表示項目:</span>\r
- <div class="checkbox m3config_inline_item"><label><input type="checkbox" name="item_show_freeze_button" {SHOW_FREEZE_BUTTON} />凍結・解凍ボタン</label></div>\r
- </div>\r
<h4>その他</h4>\r
<div class="form-group clearfix"><div class="checkbox"><label><input type="checkbox" name="item_show_top_link" {SHOW_TOP_LINK} />トップ移動リンクを表示</label></div></div>\r
</td>\r