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);
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()); }