Beispiel #1
0
 public static function processUploadFile(&$pParamHash)
 {
     $pParamHash['config_log'] = array();
     if (YamlConfig::verifyUpload($pParamHash)) {
         foreach ($pParamHash['upload_process'] as $file) {
             if ($hash = Horde_Yaml::loadFile($file['tmp_name'])) {
                 // deal with anything that might be in this hash
                 // @Todo probably want to move this out of here eventually
                 // kernel_config settings
                 if (!empty($hash['kernel_config'])) {
                     // parser is a little annoying when it comes to n and y - it reinterprets them as FALSE and TRUE
                     // we're lazy and dont want to regex the dump so lets try just flipping them back
                     foreach ($hash['kernel_config'] as $pkg => $data) {
                         foreach ($hash['kernel_config'][$pkg] as $config => $value) {
                             if ($value === TRUE || $value === FALSE) {
                                 $hash['kernel_config'][$pkg][$config] = $value ? 'y' : 'n';
                             }
                         }
                     }
                     $pParamHash['config_data']['kernel_config'] = $hash['kernel_config'];
                     // store the configurations
                     YamlConfig::setKernelConfig($pParamHash);
                 }
                 // themes_layouts settings
                 if (!empty($hash['themes_layouts'])) {
                     $pParamHash['config_data']['themes_layouts'] = $hash['themes_layouts'];
                     // store the configurations
                     YamlConfig::setThemesLayouts($pParamHash);
                 }
                 // users_permissions settings
                 if (!empty($hash['users_permissions'])) {
                     $pParamHash['config_data']['users_permissions'] = $hash['users_permissions'];
                     // store the configurations
                     YamlConfig::setUsersPermissions($pParamHash);
                 }
             }
         }
     } else {
         $pParamHash['config_log']['ERRORS'] = "Upload verification failed. " . $pParamHash['errors']['files'];
     }
     return empty($pParamHash['errors']) || count($pParamHash['errors']) == 0;
 }
function plugin_approve_action()
{
    global $vars, $post;
    if (auth::check_role('readonly')) {
        die_message(_('PKWK_READONLY prohibits editing'));
    }
    if (auth::is_check_role(PKWK_CREATE_PAGE)) {
        die_message(_('PKWK_CREATE_PAGE prohibits editing'));
    }
    // Petit SPAM Check (Client(Browser)-Server Ticket Check)
    $spam = FALSE;
    if (function_exists('pkwk_session_start') && pkwk_session_start() != 0) {
        $s_tracker = md5(get_ticket() . 'Approve');
        error_log("\$s_tracker: " . $s_tracker);
        error_log("\$_SESSION['tracker']: " . $_SESSION['tracker']);
    } else {
        if (isset($post['encode_hint']) && $post['encode_hint'] != '') {
            error_log("\$post['encode_hint']: " . $post['encode_hint']);
            if (PKWK_ENCODING_HINT != $post['encode_hint']) {
                $spam = TRUE;
            }
        } else {
            error_log("PKWK_ENCODING_HINT: " . PKWK_ENCODING_HINT);
            if (PKWK_ENCODING_HINT != '') {
                $spam = TRUE;
            }
        }
        error_log("is_spampost: " . is_spampost(array('body'), PLUGIN_TRACKER_REJECT_SPAMCOUNT));
        if (is_spampost(array('body'), PLUGIN_TRACKER_REJECT_SPAMCOUNT)) {
            $spam = TRUE;
        }
    }
    error_log("isSpam: " . $spam);
    if ($spam) {
        honeypot_write();
        return array('msg' => 'cannot write', 'body' => '<p>prohibits editing</p>');
    }
    $name = isset($post['name']) ? $post['name'] : '';
    $page = isset($post['_page']) ? $post['_page'] : '';
    if ($name == '') {
        return '<p>approve(): empty name.</p>';
    }
    if ($page == '') {
        return '<p>approve(): empty page.</p>';
    }
    $config_path = PLUGIN_APPROVE_CONFIG_ROOT . $name;
    $config = new YamlConfig($config_path);
    if (!$config->read()) {
        return array('msg' => 'Approve', 'body' => '<p>approve(): failed to load config. "' . $config_path . '"</p>');
    }
    $pattern = $config[PLUGIN_APPROVE_KEY_PATTERN];
    $replace = $config[PLUGIN_APPROVE_KEY_REPLACE];
    $page_regex = $config[PLUGIN_APPROVE_KEY_PAGE_REGEX];
    if ($page == '') {
        return array('msg' => 'Approve', 'body' => '<p>approve(): empty page.</p>');
    }
    if ($pattern == '') {
        return array('msg' => 'Approve', 'body' => '<p>approve(): empty pattern.</p>');
    }
    if ($page_regex == '') {
        return array('msg' => 'Approve', 'body' => '<p>approve(): empty page_regex.</p>');
    }
    if (!preg_match($page_regex, $page)) {
        return array('msg' => 'Approve', 'body' => '<p>approve(): page not match.</p>');
    }
    if (PKWK_READONLY > 0 || is_freeze($vars['page']) || !plugin_approve_is_edit_authed($page)) {
        return array('msg' => 'Approve', 'body' => '<p>approve(): prohibit editing. "' . $page . '"</p>');
    }
    $source = get_source($page, TRUE, TRUE);
    if ($source === FALSE) {
        return array('msg' => 'Approve', 'body' => '<p>approve(): failed to load page. "' . $page . '"</p>');
    }
    if (strpos($source, $pattern) === FALSE) {
        return array('msg' => 'Approve', 'body' => '<p>approve(): pattern not match.</p>');
    }
    $source = str_replace($pattern, $replace, $source);
    //return array('msg'=>'Approve', 'body'=>$source);
    page_write($page, $source);
    pkwk_headers_sent();
    header('Location: ' . get_page_location_uri($page));
    exit;
}
        $pkg = $_REQUEST['kernel_config_pkg'];
        $yaml .= YamlConfig::getKernelConfig($pkg);
    }
    if (!empty($_REQUEST['themes_layouts'])) {
        $pkg = $_REQUEST['themes_layouts'];
        $yaml .= YamlConfig::getThemesLayout($pkg);
    }
    if (!empty($_REQUEST['users_permissions'])) {
        $pkg = $_REQUEST['users_permissions'];
        $yaml .= YamlConfig::getUsersPermissions($pkg);
    }
    $gBitSmarty->assign('yaml', $yaml);
}
if (!empty($_REQUEST['submit_upload'])) {
    $gBitUser->verifyTicket();
    if (YamlConfig::processUploadFile($_REQUEST)) {
        // display log as valid yaml too - how sweet is that?
        $gBitSmarty->assign("config_log", Horde_Yaml::dump($_REQUEST['config_log']));
    }
}
// get data for forms
$activePackages = array('all' => 'ALL');
foreach ($gBitSystem->mPackages as $pkgname => $data) {
    if ($data['active_switch']) {
        $activePackages[$pkgname] = $pkgname;
    }
}
ksort($activePackages);
array_unshift($activePackages, 'None');
// requests NULL
$gBitSmarty->assign_by_ref('activePackages', $activePackages);
Beispiel #4
0
 public function __construct($file)
 {
     $yaml = file_get_contents($file);
     parent::__construct($yaml);
 }
 public function testGetSecretCode()
 {
     $this->assertEquals("secret-code-1", $this->config1->getSecretCode());
     $this->assertEquals("secret-code-2", $this->config2->getSecretCode());
 }