Example #1
0
    if (!$bUploadError) {
        // get ZIP folder and MD5 has to store in hidden form fields
        // these are used if the form is resubmitted (options changed) to prevent the
        // need to re-upload the ZIP file
        $oTemplate->Set('zipFolder', $oCssSpriteGen->GetZipFolder());
        $oTemplate->Set('zipFolderHash', $oCssSpriteGen->GetZipFolderHash());
    }
    // if no form or upload errors then get parameters for sprite image
    if (!$bFormError && !$bUploadError) {
        $oCssSpriteGen->CreateSprite($sFolderMD5);
        $oTemplate->Set('filename', $oCssSpriteGen->GetSpriteFilename());
        $oTemplate->Set('hash', $oCssSpriteGen->GetSpriteHash());
        $oTemplate->Set('css', $oCssSpriteGen->GetCss());
        $oTemplate->Set('validImages', $oCssSpriteGen->ValidImages());
    } else {
        $oTemplate->Set('validImages', false);
    }
    // pass error flags to template
    $oTemplate->Set('formError', $bFormError);
    $oTemplate->Set('uploadError', $bUploadError);
}
// get all errors
$aFormErrors = $oCssSpriteGen->GetAllErrors();
// pass data to template
$oTemplate->Set('title', $oTranslations->Get('page.title.home'));
$oTemplate->Set('maxFileSize', (int) ConfigHelper::Get('/upload/max_file_size'));
$oTemplate->Set('imageTypes', TemplateFunctions::ConvertArrayToMulti($oCssSpriteGen->GetImageTypes()));
$oTemplate->Set('formPosted', $bFormPosted);
$oTemplate->Set('formErrors', $aFormErrors);
$oTemplate->Set('useApi', !empty($_GET['use-api']));
$oTemplate->Set('functions', new TemplateFunctions($bFormPosted, $aFormErrors));
Example #2
0
define('DATABASE_USER', $database_config['username']);
define('DATABASE_PASS', $database_config['password']);
define('DATABASE_SERVER', $database_config['host']);
// register apps
$GLOBALS['APPS'] = $config['apps'];
// define production secret key
define('SECRET', $config['secret']);
session_start();
if (isset($_SESSION['CSRF']) !== true) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < 32; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    $_SESSION['CSRF'] = hash('sha512', time() . '' . $randomString);
}
define('CSRF', $_SESSION['CSRF']);
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
    if (!isset($_REQUEST['csrf_token']) || $_REQUEST['csrf_token'] !== $_SESSION['CSRF']) {
        header('HTTP/1.1 403 Forbidden');
        exit;
    }
}
// include template
require_once 'includes/TemplateFunctions.php';
$tmpl = new TemplateFunctions();
define('TEMPLATE_PATH', $tmpl->get_current_template_path());
define('STATIC_PATH', $tmpl->get_static_path());
define('THEME', $tmpl->get_current_theme());
$tmpl->run();
 public function create_zone($response, $data, &$out = null)
 {
     ZoneFunctions::get_zone($response, $data->name, $o, false);
     if (!empty($o)) {
         $response->code = Response::CONFLICT;
         $response->error = "Resource already exists";
         $response->error_detail = "ZONE_ALREADY_EXISTS";
         $out = false;
         return $response;
     }
     unset($o);
     $records = array();
     if (isset($data->templates) && !empty($data->templates)) {
         foreach ($data->templates as $template) {
             $response = TemplateFunctions::get_template($response, $template->identifier, $p);
             if (empty($p)) {
                 continue;
             } else {
                 foreach ($p['entries'] as $entry) {
                     $e = new stdClass();
                     $e->name = str_replace(array("[ZONE]"), array($data->name), $entry['name']);
                     $e->content = str_replace(array("[ZONE]"), array($data->name), $entry['content']);
                     $e->type = $entry['type'];
                     $e->ttl = $entry['ttl'];
                     $e->priority = $entry['priority'];
                     $records[] = $e;
                 }
             }
             unset($p);
         }
     }
     if (isset($data->records) && !empty($data->records)) {
         $records = array_merge($records, $data->records);
     }
     try {
         $connection = Database::getConnection();
     } catch (PDOException $e) {
         $response->code = Response::INTERNALSERVERERROR;
         $response->error = "Could not connect to PowerDNS server.";
         $response->error_detail = "INTERNAL_SERVER_ERROR";
         return $response;
     }
     $connection->beginTransaction();
     $zone = $connection->prepare(sprintf("INSERT INTO `%s` (name, type, master) VALUES (:name, :type, :master);", PowerDNSConfig::DB_ZONE_TABLE));
     $zone->bindValue(":name", $data->name);
     $zone->bindValue(":type", strtoupper($data->type));
     if (isset($data->master) && !empty($data->master)) {
         $zone->bindValue(":master", $data->master);
     } else {
         $zone->bindValue(":master", null, PDO::PARAM_NULL);
     }
     if ($zone->execute() === false) {
         $response->code = Response::INTERNALSERVERERROR;
         $response->error = "Rolling back transaction, failed to insert zone.";
         $response->error_detail = "INTERNAL_SERVER_ERROR";
         $connection->rollback();
         $out = false;
         return $response;
     }
     if (!empty($records)) {
         $object = new stdClass();
         $object->records = $records;
         $response = ZoneFunctions::create_records($response, $connection->lastInsertId(), $object, $r, true, $connection);
         if ($r === false) {
             $connection->rollback();
             $out = false;
             return $response;
         }
     }
     $connection->commit();
     $response->code = Response::OK;
     $response->body = true;
     $response->log_message = sprintf("Zone %s was created with %d records.", $data->name, count($records));
     $out = true;
     return $response;
 }
 /**
  * {@inheritDoc}
  */
 public function add_lang(array $lang)
 {
     $this->functions->add_language_maps($lang);
 }
 public static function delete_template($response, $identifier, &$out = null)
 {
     $response = TemplateFunctions::get_template($response, $identifier, $o);
     if (empty($o)) {
         $out = false;
         return $response;
     }
     try {
         $connection = Database::getConnection();
     } catch (PDOException $e) {
         $response->code = Response::INTERNALSERVERERROR;
         $response->error = "Could not connect to PowerDNS server.";
         $response->error_detail = "INTERNAL_SERVER_ERROR";
         $out = false;
         return $response;
     }
     $connection->beginTransaction();
     $delete = $connection->prepare(sprintf("DELETE FROM `%s` WHERE %s.name = :name;", PowerDNSConfig::DB_TEMPLATE_TABLE, PowerDNSConfig::DB_TEMPLATE_TABLE));
     if ($delete->execute(array(":name" => $identifier)) === false) {
         $response->code = Response::INTERNALSERVERERROR;
         $response->error = "Rolling back transaction, failed to delete template.";
         $response->error_detail = "TEMPLATE_DELETE_FAILED";
         $connection->rollback();
         $out = false;
         return $response;
     }
     $connection->commit();
     $response->code = Response::OK;
     $response->body = true;
     $response->log_message = sprintf("Template %s was deleted.", $identifier);
     $out = true;
     return $response;
 }
 /**
  * Delete an existing DNS template.
  *
  * ### Response: ### 
  *
  * ~~~
  * true
  * ~~~
  *
  * ### Errors: ###
  *
  * * 508 - Invalid request, missing required parameters or input validation failed.
  * * 500 - Failed to connect to database or query execution error.
  * * 404 - Could not find template.
  *
  * @access public
  * @param mixed $request Request parameters
  * @param string $identifier Template identifier
  * @return Response True if template was deleted, error message otherwise.
  */
 public function delete($request, $identifier = null)
 {
     $response = new FormattedResponse($request);
     $data = $request->parseData();
     if (empty($identifier)) {
         $response->code = Response::BADREQUEST;
         $response->error = "Identifier and/or entries were missing or invalid. Ensure that the body is in valid format and all required parameters are present.";
         $response->error_detail = "BODY_MALFORMED";
         return $response;
     }
     $validator = new TemplateValidator();
     $validator->identifier = $identifier;
     if (!$validator->validates()) {
         $response->code = Response::BADREQUEST;
         $response->error = $validator->getFormattedErrors();
         $response->error_detail = $validator->getErrorDetails();
         return $response;
     }
     return TemplateFunctions::delete_template($response, $identifier);
 }