Ligne de commande

Nouveau dans la version 1.1.4.

Galette propose désormais une interface en ligne de commande pour gérer certaines tâches. Elle est accessible via le script bin/console du dossier racine de Galette :

$ cd /var/www/html/galette
$ php bin/console
Galette v1.3.0

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display help for the given command. When no command is given display help for the list command
      --silent          Do not output any message
  -q, --quiet           Only errors are displayed. All other output is suppressed
  -V, --version         Display this application version
      --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  completion                     Dump the shell completion script
  help                           Display help for a command
  list                           List commands
 galette
  galette:check-routes           Check Galette routes naming conventions
  galette:checks                 Check Galette requirements
  galette:compile-locales        Compile translation files (PO) into MO files, for the core and plugins
  galette:feature:status         List all feature flags and their status
  galette:headers:check          Check Galette files headers
  galette:install                Install Galette
  galette:mailing:process-queue  Process the pending mass mailing queue, respecting configured limits
  galette:plugins:disable        Disable Galette plugins
  galette:plugins:enable         Enable Galette plugins
  galette:plugins:install-db     Install Galette plugins database
  galette:plugins:list           List existing Galette plugins
  galette:seed-fixtures          Seed database with E2E test fixtures (fictional members, contributions, groups, etc.)
  galette:superadmin:password    Change the super administrator password
  galette:twofactor:reset        Reset two-factor authentication of the super administrator or of a member
  galette:twig-cache             Compile Twig templates in cache
  galette:twig-pot-references    Point POT file references to Twig templates instead of compiled ones

Certains de ces commandes sont destinées uniquement aux développeurs ( galette:check-routes , galette:headers:check, galette:seed-fixtures, galette:twig-pot-references), et ne sont pas décrites ici.

Vous pouvez obtenir de l’aide pour une commande spécifique avec la commande help :

$ php bin/console help galette:checks

Vérification des pré-requis

Cela vérifie uniquement les pré-requis de Galette, il n’y a aucun argument spécifique.

Note

Sur certains systèmes, la configuration de PHP peut différer entre la console et le web ; il est donc recommandé de vérifier les pré-requis depuis le script web compat_test.php.

Installation

Cette commande installe Galette bien entendu :)

$ php bin/console help galette:install
Description:
  Install Galette

Usage:
  galette:install [options]

Options:
      --dbtype=DBTYPE        Database type (mysql, pgsql)
      --dbhost=DBHOST        Database hostname or IP address
      --dbport=DBPORT        Database port
      --dbname=DBNAME        Database schema name
      --dbprefix[=DBPREFIX]  Database table prefix
      --dbuser=DBUSER        Database user
      --dbpass[=DBPASS]      Database password
      --admin=ADMIN          Administrator username
      --password=PASSWORD    Administrator password
      --ignore-config        Ignore existing configuration file
  -h, --help                 Display help for the given command. When no command is given display help for the list command
  -q, --quiet                Do not output any message
  -V, --version              Display this application version
      --ansi|--no-ansi       Force (or disable --no-ansi) ANSI output
  -n, --no-interaction       Do not ask any interactive question
  -v|vv|vvv, --verbose       Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Par défaut, le script va vérifier la présence d’un fichier de configuration, vous pouvez l’ignorer avec l’option --ignore-config.

Les options requises qui n’ont pas été fournies à l’appel du script seront demandées interactivement.

$ php bin/console galette:install -vvv
Welcome to Galette installer!
=============================

Using existing configuration for database type
Using existing configuration for database name
Using existing configuration for database prefix
Using existing configuration for database host
Using existing configuration for database port
Using existing configuration for database user

 Database password:
 >

 Superadmin name [admin]:
 >

 Superadmin password:
 >

 ------------- --------------
  Database information
  Type          mysql
  Name          galette
  Prefix        galette_
  Host          localhost
  Port          3306
  User          galette
  Password      ********
 ------------- --------------
  Superadmin information
  Name          admin
  Password      *****
 ------------- --------------


 [WARNING] Configuration file already exists and matches the provided database information.
           All existing data will be lost if you continue.


 Do you want to continue? (yes/no) [no]:
 >

Mot de passe Super administrateur

Nouveau dans la version 1.3.0.

Le mot de passe super administrateur est normalement modifié à partir de Mon compte, puis Mes informations, ou de la page configuration avancée. Les deux nécessitent d’être connectés, ce n’aide pas le jour où le mot de passe est perdu : le super administrateur n’est pas un membre, donc il ne peut pas utiliser le formulaire mot de passe oublié non plus.

Cette commande est le moyen d’entrer à nouveau. Elle fonctionne sur la machine hébergeant Galette, et cet accès vaut authentification.

$ php bin/console help galette:superadmin:password
Description:
  Change the super administrator password

Usage:
  galette:superadmin:password

Options:
  -h, --help            Display help for the given command. When no command is given display help for the list command
      --silent          Do not output any message
  -q, --quiet           Only errors are displayed. All other output is suppressed
  -V, --version         Display this application version
      --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Il n’y a pas d’option pour passer le mot de passe : il uniquement lu à partir d’un rappel caché, de sorte qu’il ne termine pas dans votre historique ni dans la liste de processus de la machine. Il est demandé deux fois, et les deux réponses doivent correspondre.

$ php bin/console galette:superadmin:password

Change the super administrator password
=======================================

 Super administrator login: admin

 New password:
 >

 Confirm new password:
 >

 [OK] Super administrator password has been changed.

Le login est affiché de sorte que vous sachiez quel compte vous venez de changer, mais la commande ne le touche pas. Changez-le comme d’habitude depuis Mon compte, puis Mes informations.

Le nouveau mot de passe doit satisfaire aux règles de mot de passe de votre instance, exactement comme il le serait depuis l’interface web.

Réinitialisation de l’authentification à deux facteurs

Nouveau dans la version 1.3.1.

Le super administrateur n’a pas de codes de récupération, ni personne au-dessus de lui pour réinitialiser son second facteur depuis l’interface. Cette commande est le moyen d’entrer à nouveau lorsque son appareil est perdu ; comme galette:superadmin:password, elle s’exécute sur la machine hébergeant Galette, et cet accès vaut authentification.

$ php bin/console help galette:twofactor:reset
Description:
  Reset two-factor authentication of the super administrator or of a member

Usage:
  galette:twofactor:reset [options]

Options:
      --login=LOGIN     Login of the member to reset; the super administrator when omitted
      --clock           Keep the second factor, only forget the last used code (after the server clock went backwards)
      --policy-off      Disable two-factor authentication for the whole instance; second factors are kept
      --force           Do not ask for confirmation (required to run unattended)
  [...]

Sans option, la commande supprime le second facteur du super administrateur, qui se connecte alors avec son seul mot de passe :

$ php bin/console galette:twofactor:reset

Reset two-factor authentication
===============================

 Account: admin

 Remove the second factor of this account? It will log in with its password alone. (yes/no) [no]:
 > yes

 [OK] Two-factor authentication has been reset.
  • --login vise plutôt un adhérent, par son identifiant (pas son adresse courriel) ; ses codes de récupération sont supprimés eux aussi. Les administrateurs et les membres du bureau peuvent déjà le faire depuis la fiche de l’adhérent ; la commande sert lorsque personne ne peut se connecter pour le faire.

  • --clock conserve le second facteur, et oublie seulement le dernier code accepté pour le compte. C’est ce qu’il faut après un retour en arrière de l’horloge du serveur.

  • --policy-off désactive l’authentification à deux facteurs pour l’ensemble de l’instance, l’issue de secours lorsque quelque chose ne fonctionne plus pour tout le monde à la fois. Les seconds facteurs sont conservés, et de nouveau demandés dès qu’une politique est définie. Cette option ne peut pas être combinée avec les autres.

Dans tous les cas, un blocage du compte après trop de mauvais codes est également levé, et la réinitialisation est enregistrée dans l’historique.

La commande demande une confirmation ; passez --force pour l’exécuter sans terminal.

File d’envoi

Nouveau dans la version 1.3.0.

Lorsque les limites d’envoi sont configurées, les envois de masse et les rappels sont mis en queue plutôt que envoyés en une seule fois. Cette commande draine ce qui est en attente :

$ php bin/console galette:mailing:process-queue

 [WARNING] Spreading a sending over time is an alpha feature: it works, but it
           has seen little use. Watch what actually reaches your members, and
           report anything odd.

 Process the pending queue now? (yes/no) [no]:
 > yes

 [OK] Mailing queue processed: 120 sent, 0 failed.

Rien n’est envoyé tant que la question reste sans réponse. Ajouter --force pour passer la question, ce dont a besoin un traitement sans surveillance : sans cela, un script non interactif n’aurait aucun moyen de confirmer et stopper sur une erreur plutôt que d’envoyer.

$ php bin/console galette:mailing:process-queue --force

Pour une documentation plus complète, voir drainer la file d’envois, et la page page de progression qui draine également.

Commandes des plugins

Vous pouvez lister les plugins existants à l’aide de la commande galette:plugins:list :

$ php bin/console galette:plugins:list
Galette plugins
===============

 * Galette Activities (1.0.3)
 * Galette Auto (2.1.1)
 * Galette Events (2.1.2)
 * Galette Maps (2.1.0)
 * Galette OAuth2 (3.0.0)
 * plugin-fullcard (disabled)
 * plugin-paypal (disabled)
 * plugin-objectslend (disabled)

Les commandes disponibles sont :

  • galette:plugins:disable : désactive un plugin

  • galette:plugins:enable : active un plugin

  • galette:plugins:install-db : installe la base de données d’un plugin

Avertissement

L’installation de la base de données des plugins supprimera toutes les tables existantes de ce plugin !

Pour chaque commande relative aux plugins, vous pouvez préciser sur quel(s) plugin(s) vus souhaitez agir, utiliser le drapeau --all ou encore vous fier au mode interactif :

$ php bin/console galette:plugins:disable

Galette plugins management
==========================

Which plugins do you want to select?
  [*                ] All plugins
  [plugin-activities] Galette Activities
  [plugin-auto      ] Galette Auto
  [plugin-events    ] Galette Events
  [plugin-maps      ] Galette Maps
  [plugin-oauth2    ] Galette OAuth2