function plugin_role_convert() { global $_role_msg; $role = Auth::get_role_level(); if ($role == 0) { return ''; } $argv = func_get_args(); $i = count($argv); if ($i < 2) { return role_list($role); } $msg = $argv[$i - 1]; if (!Auth::is_check_role($argv[0])) { return RendererFactory::factory(str_replace("\r", "\n", $msg)); } return ''; }
function plugin_guiedit_action() { // global $vars, $_title_edit, $load_template_func; global $vars, $load_template_func; global $menubar, $sidebar, $topicpath, $_string; // if (PKWK_READONLY) Utility::dieMessage( sprintf($_string['error_prohibit'],'PKWK_READONLY') ); if (Auth::check_role('readonly')) { Utility::dieMessage(sprintf($_string['error_prohibit'], 'PKWK_READONLY')); } if (PKWK_READONLY == Auth::ROLE_AUTH && Auth::get_role_level() > Auth::ROLE_AUTH) { Utility::dieMessage(sprintf($_string['error_prohibit'], 'PKWK_READONLY')); } $page = isset($vars['page']) ? $vars['page'] : ''; $wiki = Factory::Wiki($page); if (!$wiki->isEditable()) { Utility::dieMessage('You have not permission to edit this page.'); } if (!is_page($page) && Auth::is_check_role(PKWK_CREATE_PAGE)) { Utility::dieMessage(sprintf($_string['error_prohibit'], 'PKWK_CREATE_PAGE')); } global $guiedit_use_fck; $guiedit_use_fck = isset($vars['text']) ? false : true; if ($guiedit_use_fck) { global $guiedit_pkwk_root; $guiedit_pkwk_root = get_baseuri('abs'); } if (GUIEDIT_FULL_SIZE) { $menubar = $sidebar = ''; $topicpath = false; } if (isset($vars['edit'])) { return plugin_guiedit_edit_data($page); } else { if ($load_template_func && isset($vars['template'])) { return plugin_guiedit_template(); } else { if (isset($vars['preview'])) { return plugin_guiedit_preview(); } else { if (isset($vars['write'])) { return plugin_guiedit_write(); } else { if (isset($vars['cancel'])) { return plugin_guiedit_cancel(); } } } } } $postdata = $vars['original'] = $wiki->get(true); if (isset($vars['text'])) { if (!empty($vars['id'])) { exist_plugin('edit'); $postdata = plugin_edit_parts($vars['id'], $source); if ($postdata === FALSE) { unset($vars['id']); $postdata = $vars['original']; } } if ($postdata == '') { $postdata = $wiki->auto_template(); } } return array('msg' => 'GUI Edit', 'body' => plugin_guiedit_edit_form($page, $postdata)); }
function htdigest_menu($msg = ' ') { global $realm, $js_tags, $js_blocks, $_htdigest_msg; $js_tags[] = array('type' => 'text/javascript', 'src' => JS_URI . 'plugin/crypt/md4.js'); $js_tags[] = array('type' => 'text/javascript', 'src' => JS_URI . 'plugin/crypt/md5.js'); $js_tags[] = array('type' => 'text/javascript', 'src' => JS_URI . 'plugin/crypt/sha1.js'); $js_tags[] = array('type' => 'text/javascript', 'src' => JS_URI . 'plugin/crypt/des.js'); $js_tags[] = array('type' => 'text/javascript', 'src' => JS_URI . 'plugin/crypt/base64.js'); // 使用する場合は、変更させることもコピーさせることも不要なので、抑止する $disabled = USE_APACHE_WRITE_FUNC ? 'disabled="disabled"' : ''; $func = 'save'; $role_level = Auth::get_role_level(); if ($role_level > 2) { $user_disabled = 'disabled="disabled"'; $user = Auth::check_auth(); $func = 'update'; $msg_pass = $_htdigest_msg['msg_pass_old']; } else { $user_disabled = $user = ''; $msg_pass = $role_level == 2 ? $_htdigest_msg['msg_pass_admin'] : ''; } $script = get_script_uri(); $j = <<<EOD \$('#set_hash').click(function(){ var a1,ctr,pref,hash,des_key; var fn = function(){ switch(objForm.algorithm.value) { case 'MD4': hash = hex_md4(a1); break; case 'SHA-1': hash = hex_sha1(a1); break; default: objForm.submit.disabled = false; hash = hex_md5(a1); } }; var objForm = eval("document.htdigest"); // objForm.submit.disabled = true; \$('form[name="htdigest"] input[type="submit"]').disabled(true); if (objForm.passwd.value == "" || objForm.key.value == "") { objForm.hash.value = ""; objForm.algorithm.value = ""; } else { ctr = objForm.scheme.length; for (i=0; i<ctr; i++) { if (objForm.scheme[i].checked) { objForm.algorithm.value = objForm.scheme[i].value; break; } } EOD; if ($role_level > 2) { // a1 $j .= "a1 = objForm.username.value+':'+objForm.realm.value+':'+objForm.key.value;\n"; } else { // adminpass $j .= "a1 = objForm.key.value;\n"; } $j .= <<<EOD fn(); des_key = hash; a1 = objForm.username.value+':'+objForm.realm.value+':'+objForm.passwd.value; fn(); objForm.hash.value = base64encode( des(des_key, hash, 1, 0) ); objForm.passwd.value = ""; } if (objForm.hash.value == "") { objForm.hash_view.value = ""; } else { objForm.hash_view.value = objForm.username.value+':'+objForm.realm.value+':'+hash; } }); EOD; $js_blocks[] = $j; $x = <<<EOD <fieldset> \t<legend>htdigest</legend> \t<p>{$msg}</p> \t<form name="htdigest" action="{$script}" method="post"> \t\t<input type="hidden" name="cmd" value="htdigest" /> \t\t<input type="hidden" name="func" value="{$func}" /> \t\t<input type="hidden" name="algorithm" /> \t\t<input type="hidden" name="hash" /> \t\t<table class="indented"> \t\t\t<tr> \t\t\t\t<th>{$_htdigest_msg['realm']}</th> \t\t\t\t<td><input type="text" name="realm" size="30" value="{$realm}" /></td> \t\t\t</tr> \t\t\t<tr> \t\t\t\t<th>{$_htdigest_msg['UserName']}</th> \t\t\t\t<td><input type="text" name="username" size="10" value="{$user}" {$user_disabled} /></td> \t\t\t</tr> \t\t\t<tr> \t\t\t\t<th>{$_htdigest_msg['Passwd']}</th> \t\t\t\t<td><input type="password" name="passwd" size="10" /> {$_htdigest_msg['msg_pass_new']}</td> \t\t\t</tr> \t\t\t<tr> \t\t\t\t<th>{$_htdigest_msg['Crypt']}</th> \t\t\t\t<td><input type="password" name="key" size="10" /> {$msg_pass}</td> \t\t\t</tr> \t\t\t<tr> \t\t\t\t<th>{$_htdigest_msg['Calculate']}</th> \t\t\t\t<td> \t\t\t\t\t<input type="radio" name="scheme" value="MD5" checked="checked" id="md5" /><label for="md5">MD5</label> \t\t\t\t\t<input type="radio" name="scheme" value="SHA-1" id="sha1" /><label for="sha1">SHA-1</label> \t\t\t\t\t<input type="radio" name="scheme" value="MD4" id="md4" /><label for="md4">MD4</label> \t\t\t\t\t \t\t\t\t\t<input type="button" id="set_hash" value="{$_htdigest_msg['CALC']}" /> \t\t\t\t</td> \t\t\t</tr> \t\t\t<tr> \t\t\t\t<th>{$_htdigest_msg['Result']}</th> \t\t\t\t<td><input type="text" name="hash_view" size="80" {$disabled} /></td> \t\t\t</tr> \t\t\t<tr> \t\t\t\t<td colspan="2"><input type="submit" class="btn btn-secondary" name="submit" value="{$_htdigest_msg['Update']}" disabled="disabled" /></td> \t\t\t</tr> \t\t</table> \t</form> </fieldset> EOD; return $x; }
function plugin_edit_action() { // global $vars, $_title_edit, $load_template_func; global $vars, $load_template_func, $_string, $_edit_msg; $page = isset($vars['page']) ? $vars['page'] : null; if (empty($page)) { return array('msg' => $_edit_msg['msg_edit'], 'body' => $_edit_msg['err_empty_page']); } $wiki = Factory::Wiki($page); if (!$wiki->isEditable(true)) { Utility::dieMessage($_string['err_empty_page'], 403); } // if (PKWK_READONLY) die_message( sprintf($_string['error_prohibit'], 'PKWK_READONLY') ); if (Auth::check_role('readonly')) { Utility::dieMessage($_string['error_prohibit'], 403); } if (PKWK_READONLY == Auth::ROLE_AUTH && Auth::get_role_level() > Auth::ROLE_AUTH) { Utility::dieMessage(sprintf($_string['error_prohibit'], 'PKWK_READONLY'), 403); } if (isset($vars['realview'])) { return plugin_edit_realview(); } if (!$wiki->has() && Auth::is_check_role(PKWK_CREATE_PAGE)) { Utility::dieMessage(sprintf($_string['error_prohibit'], 'PKWK_CREATE_PAGE'), 403); } if (preg_match($wiki::INVALIED_PAGENAME_PATTERN, $page)) { Utility::dieMessage($_string['illegal_chars']); } if (isset($vars['preview']) || $load_template_func && isset($vars['template'])) { return plugin_edit_preview(); } else { if (isset($vars['write'])) { return plugin_edit_write(); } else { if (isset($vars['cancel'])) { return plugin_edit_cancel(); } } } $postdata = $vars['original'] = $wiki->get(true); Auth::is_role_page($postdata); if (isset($vars['id']) && !empty($vars['id'])) { $source = $wiki->get(); $postdata = plugin_edit_parts($vars['id'], $source); if ($postdata === FALSE) { unset($vars['id']); // なかったことに :) $postdata = $vars['original']; } } if (empty($postdata)) { // Check Page name length // http://pukiwiki.sourceforge.jp/dev/?PukiWiki%2F1.4%2F%A4%C1%A4%E7%A4%C3%A4%C8%CA%D8%CD%F8%A4%CB%2F%C4%B9%A4%B9%A4%AE%A4%EB%A5%DA%A1%BC%A5%B8%CC%BE%A4%CE%A5%DA%A1%BC%A5%B8%A4%CE%BF%B7%B5%AC%BA%EE%C0%AE%A4%F2%CD%DE%BB%DF $filename_max_length = 250; $filename = Utility::encode($page) . '.txt'; $filename_length = strlen($filename); if ($filename_length > $filename_max_length) { // Filename too long return array('msg' => $_edit_msg['title_edit'], 'body' => join("\n", array('<p class="alert alert-warning"><span class="fa fa-exclamation-triangle"></span>' . $_edit_msg['err_long'], '</p>', '<dl class="dl-horizontal">', '<dt>Page name</dt>', '<dd>' . Utility::htmlsc($page) . '</dd>', '<dt>Filename</dt>', '<dd>' . $filename . '</dd>', '<dt>Filename length</dt>', '<dd>' . $filename_length . '</dd>', '<dt>Filename limit</dt>', '<dd>' . $filename_max_length . '</dd>', '</dl>'))); } else { $postdata = $wiki->auto_template(); } } return array('msg' => sprintf($_edit_msg['title_edit'], $page), 'body' => Utility::editForm($page, $postdata)); }
function plugin_navibar_convert() { global $do_backup, $trackback, $referer; global $function_freeze; global $vars; global $whatsnew, $whatsdeleted; /* if ($_LINK['reload'] == '') { return '<p class="message_box ui-state-error ui-corner-all">#navibar: plugin called from wikipage. skipped.</p>'; } */ $_page = isset($vars['page']) ? $vars['page'] : null; $is_read = arg_check('read') && is_page($_page); $is_freeze = is_freeze($_page); $is_readonly = Auth::check_role('readonly') || PKWK_READONLY == Auth::ROLE_AUTH && Auth::get_role_level() > Auth::ROLE_AUTH ? true : false; $cmd = isset($vars['cmd']) ? $vars['cmd'] : null; $num = func_num_args(); $args = $num ? func_get_args() : array(); if (IS_MOBILE) { $ret[] = '<ul data-role="listview">'; } else { $ret[] = '<ul>'; } while (!empty($args)) { $name = array_shift($args); switch ($name) { case 'freeze': case 'unfreeze': if ($is_read && $function_freeze && !($_page == $whatsnew || $_page == $whatsdeleted)) { if ($is_freeze) { $name = 'unfreeze'; } else { $name = 'freeze'; } $ret[] = _navibar($name); } break; case 'list': if ($cmd !== 'list') { $ret[] = _navibar($name); } else { $ret[] = _navibar('filelist'); } break; case 'backup': if ($do_backup) { $ret[] = _navibar($name); } break; case 'brokenlink': case 'template': case 'source': case 'diff': case 'reload': case 'copy': if ($is_read || !empty($_page) && !($_page == $whatsnew || $_page == $whatsdeleted)) { $ret[] = _navibar($name); } break; case 'trackback': if ($trackback) { if (!empty($_page) && !($_page == $whatsnew || $_page == $whatsdeleted)) { $ret[] = _navibar($name, 'Trackback(' . tb_count($_page) . ')'); } else { // $ret[] = _navibar($name, 'Trackback list'); } } break; case 'referer': case 'skeylist': case 'linklist': if ($referer && !empty($_page)) { $ret[] = _navibar($name); } break; case 'log': if (!empty($_page)) { $ret[] = _navibar($name); } case '|': if (end($ret) !== '<ul>') { $ret[] = '</ul>'; $ret[] = "\n"; $ret[] = !IS_MOBILE ? '<ul>' : '<ul data-role="listview">'; } break; case 'attach': case 'upload': if ($is_read && (bool) ini_get('file_uploads') && !$is_freeze && !($_page == $whatsnew || $_page == $whatsdeleted) && !$is_readonly) { $ret[] = _navibar($name); } break; case 'new': case 'newsub': case 'edit': case 'guiedit': if (!empty($_page) && $is_read && $function_freeze && !$is_freeze && !($_page == $whatsnew || $_page == $whatsdeleted) && !$is_readonly) { $ret[] = _navibar($name); } break; case 'login': $auth_key = Auth::get_user_info(); if (empty($auth_key['key'])) { $ret[] = _navibar($name); } break; default: $ret[] = _navibar($name); break; } } if (end($ret) === '<ul>') { array_pop($ret); array_pop($ret); } else { $ret[] = '</ul>'; } $body = "\n" . join('', $ret) . "\n"; if (IS_MOBILE) { return $body; } else { return '<nav class="navibar">' . $body . '</nav>' . "\n"; } }
function plugin_comment_get_nick() { global $vars, $_no_name; $name = empty($vars['name']) ? $_no_name : $vars['name']; if (PKWK_READONLY != Auth::ROLE_AUTH) { return array($name, $name, ''); } $auth_key = Auth::get_user_name(); if (empty($auth_key['nick'])) { return array($name, $name, ''); } if (Auth::get_role_level() < Auth::ROLE_AUTH) { return array($auth_key['nick'], $name, ''); } $link = empty($auth_key['profile']) ? $auth_key['nick'] : $auth_key['nick'] . '>' . $auth_key['profile']; return array($auth_key['nick'], $link, "disabled=\"disabled\""); }