Overview
Comment:Forcer l'installation des plugins système après restauration
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | stable
Files: files | file ages | folders
SHA1: e3268e5084b918bc69e203d045c94403749851bc
User & Date: bohwaz on 2018-04-28 22:07:07
Other Links: manifest | tags
References
2020-12-08
23:25 Wiki page "Changelog/0.9" artifact: b9c916b4d1 user: bohwaz
Context
2018-04-29
09:11
id_membre était ambigu, correction check-in: 325553daa5 user: bohwaz tags: trunk, stable
2018-04-28
22:07
Forcer l'installation des plugins système après restauration check-in: e3268e5084 user: bohwaz tags: trunk, stable
22:03
Remplir automatiquement le montant pour la cotisation en premier dans le select, signalé par @François check-in: 1537e3d414 user: bohwaz tags: trunk, stable
Changes

Modified src/config.dist.php from [cba29bf5b8] to [4e704c2c3b].

88
89
90
91
92
93
94



95
96
97
98
99
100
101
 * Défaut : DATA_ROOT . '/plugins'
 */
const PLUGINS_ROOT = DATA_ROOT . '/plugins';

/**
 * Plugins fixes qui ne peuvent être désinstallés par l'utilisateur
 * (séparés par une virgule)



 *
 * Exemple : PLUGINS_SYSTEM = 'gestion_emails,factures'
 *
 * Défaut : aucun (chaîne vide)
 */
const PLUGINS_SYSTEM = '';








>
>
>







88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
 * Défaut : DATA_ROOT . '/plugins'
 */
const PLUGINS_ROOT = DATA_ROOT . '/plugins';

/**
 * Plugins fixes qui ne peuvent être désinstallés par l'utilisateur
 * (séparés par une virgule)
 *
 * Ils seront aussi réinstallés en cas de restauration de sauvegarde,
 * s'ils ne sont pas dans la sauvegarde.
 *
 * Exemple : PLUGINS_SYSTEM = 'gestion_emails,factures'
 *
 * Défaut : aucun (chaîne vide)
 */
const PLUGINS_SYSTEM = '';

Modified src/include/lib/Garradin/Plugin.php from [01e5472ad8] to [7158f0977e].

339
340
341
342
343
344
345

























346
347
348
349
350
351
352
		foreach ($plugins as &$row)
		{
			$row->system = in_array($row->id, $system);
		}

		return $plugins;
	}


























	/**
	 * Liste les plugins qui doivent être affichés dans le menu
	 * @return array Tableau associatif id => nom (ou un tableau vide si aucun plugin ne doit être affiché)
	 */
	static public function listMenu()
	{







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
		foreach ($plugins as &$row)
		{
			$row->system = in_array($row->id, $system);
		}

		return $plugins;
	}

	/**
	 * Vérifie que les plugins système sont bien installés et sinon les réinstalle
	 * @return void
	 */
	static public function checkAndInstallSystemPlugins()
	{
		$system = explode(',', PLUGINS_SYSTEM);
		$db = DB::getInstance();
		$installed = $db->get('SELECT id FROM plugins WHERE ' . $db->where('id', 'IN', $system));

		$missing = array_diff($system, $installed);

		if (count($missing) == 0)
		{
			return true;
		}

		foreach ($missing as $plugin)
		{
			self::install($plugin);
		}

		return true;
	}

	/**
	 * Liste les plugins qui doivent être affichés dans le menu
	 * @return array Tableau associatif id => nom (ou un tableau vide si aucun plugin ne doit être affiché)
	 */
	static public function listMenu()
	{

Modified src/include/lib/Garradin/Sauvegarde.php from [1bc750753b] to [b8d932eaa5].

380
381
382
383
384
385
386



387
388
389
390
391
392
393
			// Forcer toutes les catégories à pouvoir gérer les droits
			$db = DB::getInstance();
			$db->update('membres_categories', [
				'droit_membres' => Membres::DROIT_ADMIN,
				'droit_connexion' => Membres::DROIT_ACCES
			]);
		}




		if ($version != garradin_version())
		{
			$return |= self::NEED_UPGRADE;
		}

		return $return;







>
>
>







380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
			// Forcer toutes les catégories à pouvoir gérer les droits
			$db = DB::getInstance();
			$db->update('membres_categories', [
				'droit_membres' => Membres::DROIT_ADMIN,
				'droit_connexion' => Membres::DROIT_ACCES
			]);
		}

		// Force l'installation de plugin système si non existant dans la sauvegarde existante
		Plugin::checkAndInstallSystemPlugins();

		if ($version != garradin_version())
		{
			$return |= self::NEED_UPGRADE;
		}

		return $return;