Overview
Comment:Don't allow to downgrade
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | 1.1.15
Files: files | file ages | folders
SHA3-256: 324a21c46f4f662e09a81d3c06bfddf056d9d6b31578fa920a94578d3ccd2db1
User & Date: bohwaz on 2021-11-22 22:47:29
Other Links: manifest | tags
Context
2021-11-22
23:09
Don't disable old versions, as they're not listed anyway check-in: 595df2287d user: bohwaz tags: trunk, stable, 1.1.15
22:47
Don't allow to downgrade check-in: 324a21c46f user: bohwaz tags: trunk, 1.1.15
21:53
Some changes required for 1.1.15 release process check-in: 06f79a182d user: bohwaz tags: trunk, 1.1.15
Changes

Modified doc/index.md from [384e6c4667] to [7ba114ee44].

123
124
125
126
127
128
129
130
131
132
133
134
135
136
137

fetch('/garradin/juvlist?'+(+(new Date))).then((r) => {
	r.json().then((list) => {
		let last;
		let selected;

		list.forEach((file) => {
			var v = file.name.match(/^garradin-(.*)\.tar\.gz$/);

			if (!v || v[1].match(/-(alpha|rc|beta)/)) {
				return;
			}

			if (!last || isNewerVersion(last, v[1])) {
				last = v[1];







|







123
124
125
126
127
128
129
130
131
132
133
134
135
136
137

fetch('/garradin/juvlist?'+(+(new Date))).then((r) => {
	r.json().then((list) => {
		let last;
		let selected;

		list.forEach((file) => {
			var v = file.name.match(/^garradin-(.*)\.tar\./);

			if (!v || v[1].match(/-(alpha|rc|beta)/)) {
				return;
			}

			if (!last || isNewerVersion(last, v[1])) {
				last = v[1];

Modified src/include/lib/Garradin/Upgrade.php from [cbc9bd051a] to [6913a38822].

425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446


447



448


449



450
451
452
453
454
455
456
		$current_version = garradin_version();
		$last = (object) ['time' => time(), 'version' => null];
		$config->set('last_version_check', json_encode($last));
		$config->save();

		$last->version = self::getInstaller()->latest();

		if (version_compare($last->version, $current_version, '==')) {
			$last->version = null;
		}

		$config->set('last_version_check', json_encode($last));
		$config->save();

		return $last;
	}

	static public function getInstaller(): FossilInstaller
	{
		if (!isset(self::$installer)) {
			$i = new FossilInstaller(WEBSITE, ROOT, CACHE_ROOT, '!^garradin-(.*)\.tar\.gz$!');
			$i->setPublicKeyFile(ROOT . '/pubkey.asc');


			$i->addIgnoredPath(CACHE_ROOT);



			$i->addIgnoredPath(DATA_ROOT);


			$i->addIgnoredPath(SHARED_CACHE_ROOT);



			$i->addIgnoredPath(ROOT . '/config.local.php');
			self::$installer = $i;
		}

		return self::$installer;
	}
}







|














>
>
|
>
>
>
|
>
>
|
>
>
>
|






425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
		$current_version = garradin_version();
		$last = (object) ['time' => time(), 'version' => null];
		$config->set('last_version_check', json_encode($last));
		$config->save();

		$last->version = self::getInstaller()->latest();

		if (version_compare($last->version, $current_version, '<=')) {
			$last->version = null;
		}

		$config->set('last_version_check', json_encode($last));
		$config->save();

		return $last;
	}

	static public function getInstaller(): FossilInstaller
	{
		if (!isset(self::$installer)) {
			$i = new FossilInstaller(WEBSITE, ROOT, CACHE_ROOT, '!^garradin-(.*)\.tar\.gz$!');
			$i->setPublicKeyFile(ROOT . '/pubkey.asc');

			if (0 === ($pos = strpos(CACHE_ROOT, ROOT))) {
				$i->addIgnoredPath(substr(CACHE_ROOT, strlen(ROOT) + 1));
			}

			if (0 === ($pos = strpos(DATA_ROOT, ROOT))) {
				$i->addIgnoredPath(substr(DATA_ROOT, strlen(ROOT) + 1));
			}

			if (0 === ($pos = strpos(SHARED_CACHE_ROOT, ROOT))) {
				$i->addIgnoredPath(substr(SHARED_CACHE_ROOT, strlen(ROOT) + 1));
			}

			$i->addIgnoredPath('config.local.php');
			self::$installer = $i;
		}

		return self::$installer;
	}
}

Added src/pubkey.asc version [7eb815c6b8].

























































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
LXuQsMKeyq2w2PXDtjLNmCUMNnTR/A==
=6UFY
-----END PGP PUBLIC KEY BLOCK-----

Modified src/templates/admin/config/upgrade.tpl from [d942451dc5] to [6a941e34a7].

1
2
3
4
5
6
7
8


9
10
11
12
13
14
15
16
{include file="admin/_head.tpl" title="Configuration" current="config"}

{include file="admin/config/_menu.tpl" current="index"}

{form_errors}

<form method="post" action="{$self_url}">



{if $downloaded && $verified === false}
	<p class="error block">Le fichier d'installation est corrompu.</p>
{elseif $downloaded}
	<fieldset>
		<legend>Mise à jour vers {$version}</legend>
		{if $verified === true}
		<p class="help">
			Le fichier d'installation a été correctement vérifié.
|







>
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{include file="admin/_head.tpl" title="Mise à jour" current="config"}

{include file="admin/config/_menu.tpl" current="index"}

{form_errors}

<form method="post" action="{$self_url}">

{if !count($releases)}
	<p class="block alert">Aucune mise à jour n'est disponible.</p>
{elseif $downloaded && $verified === false}
	<p class="error block">Le fichier d'installation est corrompu.</p>
{elseif $downloaded}
	<fieldset>
		<legend>Mise à jour vers {$version}</legend>
		{if $verified === true}
		<p class="help">
			Le fichier d'installation a été correctement vérifié.
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
			<p>
			{foreach from=$diff.update key="file" item="path"}
				{$file}<br />
			{/foreach}
			</p>
		</details>
		<dl class="block error">
			{input type="checkbox" name="upgrade" value="{$version}" label="Je confirme vouloir procéder à la mise à jour" help="Cette action peut casser votre installation !"}
		</dl>
	</fieldset>

	<p class="alert block">N'oubliez pas d'aller {link href="%swiki/?name=Changelog"|args:WEBSITE target="_blank" label="lire le journal des changements"} avant d'effectuer la mise à jour&nbsp;!</p>
	<p class="submit">
		{csrf_field key=$csrf_key}
		{button type="submit" name="next" label="Effectuer la mise à jour" shape="right" class="main"}
	</p>
{else}
	<fieldset>
		<legend>Mise à jour</legend>
		<dl>
		{foreach from=$releases key="version" item="release"}
			{input type="radio" name="download" value=$version label=$version}
			{if $version == $latest}
			<dd class="help">
				Dernière version stable, conseillée.
			</dd>
			{/if}
		{/foreach}
		</dl>







|













|







49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
			<p>
			{foreach from=$diff.update key="file" item="path"}
				{$file}<br />
			{/foreach}
			</p>
		</details>
		<dl class="block error">
			{input type="checkbox" name="upgrade" value=$version label="Je confirme vouloir procéder à la mise à jour" help="Cette action peut casser votre installation !"}
		</dl>
	</fieldset>

	<p class="alert block">N'oubliez pas d'aller {link href="%swiki/?name=Changelog"|args:WEBSITE target="_blank" label="lire le journal des changements"} avant d'effectuer la mise à jour&nbsp;!</p>
	<p class="submit">
		{csrf_field key=$csrf_key}
		{button type="submit" name="next" label="Effectuer la mise à jour" shape="right" class="main"}
	</p>
{else}
	<fieldset>
		<legend>Mise à jour</legend>
		<dl>
		{foreach from=$releases key="version" item="release"}
			{input type="radio" name="download" value=$version label=$version disabled=!$release.can_upgrade}
			{if $version == $latest}
			<dd class="help">
				Dernière version stable, conseillée.
			</dd>
			{/if}
		{/foreach}
		</dl>

Modified src/www/admin/config/upgrade.php from [5b7fb977c4] to [423a4f1508].

11
12
13
14
15
16
17









18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
	exit;
}

$i = Upgrade::getInstaller();

$csrf_key = 'upgrade_' . sha1(SECRET_KEY);
$releases = $i->listReleases();









$latest = $i->latest();
$tpl->assign('downloaded', false);
$tpl->assign('can_verify', Security::canUseEncryption());

$form->runIf('download', function () use ($i, $tpl) {
	$i->download(f('download'));
	$tpl->assign('downloaded', true);
	$tpl->assign('verified', $i->verify(f('download')));
	$tpl->assign('diff', $i->diff(f('download')));
	$tpl->assign('version', f('download'));
}, $csrf_key);

$form->runIf('upgrade', function () use ($i) {
	$url = ADMIN_URL . 'upgrade.php';
	$i->install(f('upgrade'));
	header('Location: ' . $url);
	exit;
}, $csrf_key);

$tpl->assign(compact('releases', 'latest', 'csrf_key'));
$tpl->display('admin/config/upgrade.tpl');







>
>
>
>
>
>
>
>
>














|






11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
	exit;
}

$i = Upgrade::getInstaller();

$csrf_key = 'upgrade_' . sha1(SECRET_KEY);
$releases = $i->listReleases();
$v = garradin_version();

// Remove releases that are in the past
foreach ($releases as $rv => $release) {
	if (!version_compare($rv, $v, '>')) {
		unset($releases[$rv]);
	}
}

$latest = $i->latest();
$tpl->assign('downloaded', false);
$tpl->assign('can_verify', Security::canUseEncryption());

$form->runIf('download', function () use ($i, $tpl) {
	$i->download(f('download'));
	$tpl->assign('downloaded', true);
	$tpl->assign('verified', $i->verify(f('download')));
	$tpl->assign('diff', $i->diff(f('download')));
	$tpl->assign('version', f('download'));
}, $csrf_key);

$form->runIf('upgrade', function () use ($i) {
	$url = ADMIN_URL . 'upgrade.php';
	$i->upgrade(f('upgrade'));
	header('Location: ' . $url);
	exit;
}, $csrf_key);

$tpl->assign(compact('releases', 'latest', 'csrf_key'));
$tpl->display('admin/config/upgrade.tpl');