Ejemplo n.º 1
0
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 '';
}
Ejemplo n.º 2
0
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));
}
Ejemplo n.º 3
0
function htdigest_menu($msg = '&nbsp;')
{
    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" />&nbsp;{$_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" />&nbsp;{$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&nbsp;
\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;
}
Ejemplo n.º 4
0
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));
}
Ejemplo n.º 5
0
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";
    }
}
Ejemplo n.º 6
0
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\"");
}