Ajout du support des écritures ventilées.
[garradin.git] / www / admin / config / donnees.php
1 <?php
2 namespace Garradin;
3
4 require_once __DIR__ . '/_inc.php';
5
6 $s = new Sauvegarde;
7 $error = false;
8
9 if (utils::post('config'))
10 {
11 if (!utils::CSRF_check('backup_config'))
12 {
13 $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
14 }
15 else
16 {
17 try {
18 $config->set('frequence_sauvegardes', utils::post('frequence_sauvegardes'));
19 $config->set('nombre_sauvegardes', utils::post('nombre_sauvegardes'));
20 $config->save();
21
22 utils::redirect('/admin/config/donnees.php?ok=config');
23 } catch (UserException $e) {
24 $error = $e->getMessage();
25 }
26 }
27 }
28 elseif (utils::post('create'))
29 {
30 if (!utils::CSRF_check('backup_create'))
31 {
32 $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
33 }
34 else
35 {
36 try {
37 $s->create();
38 utils::redirect('/admin/config/donnees.php?ok=create');
39 } catch (UserException $e) {
40 $error = $e->getMessage();
41 }
42 }
43 }
44 elseif (utils::post('download'))
45 {
46 if (!utils::CSRF_check('backup_download'))
47 {
48 $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
49 }
50 else
51 {
52 header('Content-type: application/octet-stream');
53 header('Content-Disposition: attachment; filename="' . $config->get('nom_asso') . ' - Sauvegarde données - ' . date('Y-m-d') . '.sqlite"');
54
55 $s->dump();
56 exit;
57 }
58 }
59 elseif (utils::post('restore'))
60 {
61 if (!utils::CSRF_check('backup_manage'))
62 {
63 $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
64 }
65 else
66 {
67 try {
68 $s->restoreFromLocal(utils::post('file'));
69 utils::redirect('/admin/config/donnees.php?ok=restore');
70 } catch (UserException $e) {
71 $error = $e->getMessage();
72 }
73 }
74 }
75 elseif (utils::post('remove'))
76 {
77 if (!utils::CSRF_check('backup_manage'))
78 {
79 $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
80 }
81 else
82 {
83 try {
84 $s->remove(utils::post('file'));
85 utils::redirect('/admin/config/donnees.php?ok=remove');
86 } catch (UserException $e) {
87 $error = $e->getMessage();
88 }
89 }
90 }
91 elseif (utils::post('restore_file'))
92 {
93 if (!utils::CSRF_check('backup_restore'))
94 {
95 $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
96 }
97 else
98 {
99 try {
100 $s->restoreFromUpload($_FILES['file']);
101 utils::redirect('/admin/config/donnees.php?ok=restore');
102 } catch (UserException $e) {
103 $error = $e->getMessage();
104 }
105 }
106 }
107
108 $tpl->assign('error', $error);
109 $tpl->assign('ok', utils::get('ok'));
110 $tpl->assign('liste', $s->getList());
111 $tpl->assign('max_file_size', utils::getMaxUploadSize());
112
113 $tpl->display('admin/config/donnees.tpl');
114
115 ?>