summaryrefslogtreecommitdiff
path: root/app/install.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-03-11 22:57:20 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-03-11 22:57:20 +0100
commit8dcc0fd65a36adedb12e5d54bafb39e7e553d38b (patch)
treebf47fd99928a6782a309cdd1171516029d4f9611 /app/install.php
parent919c9c83013ea310f01c309f00dea3f8afa9033e (diff)
parent8f4c61a4154641ac22e6d541b6994add3c4803cb (diff)
Merge pull request #1119 from FreshRSS/dev1.3.1-beta
Merge dev in 1.3.1-beta
Diffstat (limited to 'app/install.php')
-rw-r--r--app/install.php117
1 files changed, 30 insertions, 87 deletions
diff --git a/app/install.php b/app/install.php
index 83526b60c..b47effc84 100644
--- a/app/install.php
+++ b/app/install.php
@@ -2,6 +2,7 @@
if (function_exists('opcache_reset')) {
opcache_reset();
}
+header("Content-Security-Policy: default-src 'self'");
define('BCRYPT_COST', 9);
@@ -130,7 +131,7 @@ function saveStep2() {
$_SESSION['mail_login'] = filter_var(param('mail_login', ''), FILTER_VALIDATE_EMAIL);
$password_plain = param('passwordPlain', false);
- if ($password_plain !== false) {
+ if ($password_plain !== false && cryptAvailable()) {
if (!function_exists('password_hash')) {
include_once(LIB_PATH . '/password_compat.php');
}
@@ -317,6 +318,8 @@ function checkStep1() {
$pcre = extension_loaded('pcre');
$ctype = extension_loaded('ctype');
$dom = class_exists('DOMDocument');
+ $xml = function_exists('xml_parser_create');
+ $json = function_exists('json_encode');
$data = DATA_PATH && is_writable(DATA_PATH);
$cache = CACHE_PATH && is_writable(CACHE_PATH);
$users = USERS_PATH && is_writable(USERS_PATH);
@@ -334,13 +337,15 @@ function checkStep1() {
'pcre' => $pcre ? 'ok' : 'ko',
'ctype' => $ctype ? 'ok' : 'ko',
'dom' => $dom ? 'ok' : 'ko',
+ 'xml' => $xml ? 'ok' : 'ko',
+ 'json' => $json ? 'ok' : 'ko',
'data' => $data ? 'ok' : 'ko',
'cache' => $cache ? 'ok' : 'ko',
'users' => $users ? 'ok' : 'ko',
'favicons' => $favicons ? 'ok' : 'ko',
'persona' => $persona ? 'ok' : 'ko',
'http_referer' => $http_referer ? 'ok' : 'ko',
- 'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $dom &&
+ 'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $dom && $xml &&
$data && $cache && $users && $favicons && $persona && $http_referer ?
'ok' : 'ko'
);
@@ -553,6 +558,12 @@ function printStep1() {
<p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.curl.nok'); ?></p>
<?php } ?>
+ <?php if ($res['json'] == 'ok') { ?>
+ <p class="alert alert-success"><span class="alert-head"><?php echo _t('gen.short.ok'); ?></span> <?php echo _t('install.check.json.ok'); ?></p>
+ <?php } else { ?>
+ <p class="alert alert-warn"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.json.nok'); ?></p>
+ <?php } ?>
+
<?php if ($res['pcre'] == 'ok') { ?>
<p class="alert alert-success"><span class="alert-head"><?php echo _t('gen.short.ok'); ?></span> <?php echo _t('install.check.pcre.ok'); ?></p>
<?php } else { ?>
@@ -571,6 +582,12 @@ function printStep1() {
<p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.dom.nok'); ?></p>
<?php } ?>
+ <?php if ($res['xml'] == 'ok') { ?>
+ <p class="alert alert-success"><span class="alert-head"><?php echo _t('gen.short.ok'); ?></span> <?php echo _t('install.check.xml.ok'); ?></p>
+ <?php } else { ?>
+ <p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.xml.nok'); ?></p>
+ <?php } ?>
+
<?php if ($res['data'] == 'ok') { ?>
<p class="alert alert-success"><span class="alert-head"><?php echo _t('gen.short.ok'); ?></span> <?php echo _t('install.check.data.ok'); ?></p>
<?php } else { ?>
@@ -616,27 +633,6 @@ function printStep1() {
<a class="btn btn-attention next-step confirm" data-str-confirm="<?php echo _t('install.js.confirm_reinstall'); ?>" href="?step=2" tabindex="2" ><?php echo _t('install.action.reinstall'); ?></a>
</form>
- <script>
- function ask_confirmation(e) {
- var str_confirmation = this.getAttribute('data-str-confirm');
- if (!str_confirmation) {
- str_confirmation = "<?php echo _t('gen.js.confirm_action'); ?>";
- }
-
- if (!confirm(str_confirmation)) {
- e.preventDefault();
- }
- }
-
- function init_confirm() {
- confirms = document.getElementsByClassName('confirm');
- for (var i = 0 ; i < confirms.length ; i++) {
- confirms[i].addEventListener('click', ask_confirmation);
- }
- }
-
- init_confirm();
- </script>
<?php } elseif ($res['all'] == 'ok') { ?>
<a class="btn btn-important next-step" href="?step=2" tabindex="1" ><?php echo _t('install.action.next_step'); ?></a>
<?php } else { ?>
@@ -674,17 +670,17 @@ function printStep2() {
<div class="form-group">
<label class="group-name" for="auth_type"><?php echo _t('install.auth.type'); ?></label>
<div class="group-controls">
- <select id="auth_type" name="auth_type" required="required" onchange="auth_type_change(true)" tabindex="4">
+ <select id="auth_type" name="auth_type" required="required" tabindex="4">
<?php
function no_auth($auth_type) {
return !in_array($auth_type, array('form', 'persona', 'http_auth', 'none'));
}
$auth_type = isset($_SESSION['auth_type']) ? $_SESSION['auth_type'] : '';
?>
- <option value="form"<?php echo $auth_type === 'form' || no_auth($auth_type) ? ' selected="selected"' : '', cryptAvailable() ? '' : ' disabled="disabled"'; ?>><?php echo _t('install.auth.form'); ?></option>
+ <option value="form"<?php echo $auth_type === 'form' || (no_auth($auth_type) && cryptAvailable()) ? ' selected="selected"' : '', cryptAvailable() ? '' : ' disabled="disabled"'; ?>><?php echo _t('install.auth.form'); ?></option>
<option value="persona"<?php echo $auth_type === 'persona' ? ' selected="selected"' : ''; ?>><?php echo _t('install.auth.persona'); ?></option>
<option value="http_auth"<?php echo $auth_type === 'http_auth' ? ' selected="selected"' : '', httpAuthUser() == '' ? ' disabled="disabled"' : ''; ?>><?php echo _t('install.auth.http'); ?>(REMOTE_USER = '<?php echo httpAuthUser(); ?>')</option>
- <option value="none"<?php echo $auth_type === 'none' ? ' selected="selected"' : ''; ?>><?php echo _t('install.auth.none'); ?></option>
+ <option value="none"<?php echo $auth_type === 'none' || (no_auth($auth_type) && !cryptAvailable()) ? ' selected="selected"' : ''; ?>><?php echo _t('install.auth.none'); ?></option>
</select>
</div>
</div>
@@ -709,48 +705,6 @@ function printStep2() {
</div>
</div>
- <script>
- function show_password() {
- var button = this;
- var passwordField = document.getElementById(button.getAttribute('data-toggle'));
- passwordField.setAttribute('type', 'text');
- button.className += ' active';
-
- return false;
- }
- function hide_password() {
- var button = this;
- var passwordField = document.getElementById(button.getAttribute('data-toggle'));
- passwordField.setAttribute('type', 'password');
- button.className = button.className.replace(/(?:^|\s)active(?!\S)/g , '');
-
- return false;
- }
- toggles = document.getElementsByClassName('toggle-password');
- for (var i = 0 ; i < toggles.length ; i++) {
- toggles[i].addEventListener('mousedown', show_password);
- toggles[i].addEventListener('mouseup', hide_password);
- }
-
- function auth_type_change() {
- var auth_value = document.getElementById('auth_type').value,
- password_input = document.getElementById('passwordPlain'),
- mail_input = document.getElementById('mail_login');
-
- if (auth_value === 'form') {
- password_input.required = true;
- mail_input.required = false;
- } else if (auth_value === 'persona') {
- password_input.required = false;
- mail_input.required = true;
- } else {
- password_input.required = false;
- mail_input.required = false;
- }
- }
- auth_type_change();
- </script>
-
<div class="form-group form-actions">
<div class="group-controls">
<button type="submit" class="btn btn-important" tabindex="7" ><?php echo _t('gen.action.submit'); ?></button>
@@ -778,7 +732,7 @@ function printStep3() {
<div class="form-group">
<label class="group-name" for="type"><?php echo _t('install.bdd.type'); ?></label>
<div class="group-controls">
- <select name="type" id="type" onchange="mySqlShowHide()" tabindex="1" >
+ <select name="type" id="type" tabindex="1">
<?php if (extension_loaded('pdo_mysql')) {?>
<option value="mysql"
<?php echo(isset($_SESSION['bd_type']) && $_SESSION['bd_type'] === 'mysql') ? 'selected="selected"' : ''; ?>>
@@ -831,19 +785,6 @@ function printStep3() {
</div>
</div>
</div>
- <script>
- function mySqlShowHide() {
- document.getElementById('mysql').style.display = document.getElementById('type').value === 'mysql' ? 'block' : 'none';
- if (document.getElementById('type').value !== 'mysql') {
- document.getElementById('host').value = '';
- document.getElementById('user').value = '';
- document.getElementById('pass').value = '';
- document.getElementById('base').value = '';
- document.getElementById('prefix').value = '';
- }
- }
- mySqlShowHide();
- </script>
<div class="form-group form-actions">
<div class="group-controls">
@@ -897,13 +838,14 @@ case 5:
}
?>
<!DOCTYPE html>
-<html lang="fr">
+<html>
<head>
- <meta charset="utf-8">
- <meta name="viewport" content="initial-scale=1.0">
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="initial-scale=1.0" />
<title><?php echo _t('install.title'); ?></title>
- <link rel="stylesheet" type="text/css" media="all" href="../themes/base-theme/template.css" />
- <link rel="stylesheet" type="text/css" media="all" href="../themes/Origine/origine.css" />
+ <link rel="stylesheet" href="../themes/base-theme/template.css?<?php echo @filemtime(PUBLIC_PATH . '/themes/base-theme/template.css'); ?>" />
+ <link rel="stylesheet" href="../themes/Origine/origine.css?<?php echo @filemtime(PUBLIC_PATH . '/themes/Origine/origine.css'); ?>" />
+ <meta name="robots" content="noindex,nofollow" />
</head>
<body>
@@ -950,5 +892,6 @@ case 5:
?>
</div>
</div>
+ <script src="../scripts/install.js?<?php echo @filemtime(PUBLIC_PATH . '/scripts/install.js'); ?>"></script>
</body>
</html>