Changeset 93345 in spip-zone for _plugins_/composer


Ignore:
Timestamp:
Dec 2, 2015, 1:36:52 PM (5 years ago)
Author:
marcimat@…
Message:

Mise à jour de la doc.
+ On ne cherche pas à tester la présence du fichier composer.json à chaque hit.
Par contre, on le crée si on est sur la page des plugins ou sur la page composer.

+ Quelques autorisations de plus (et correctement les charger !)

Location:
_plugins_/composer/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/composer/trunk/composer_autorisations.php

    r93343 r93345  
    1212if (!defined('_ECRIRE_INC_VERSION')) return;
    1313
     14/**
     15 * Fonction d'appel pour le pipeline
     16 * @pipeline autoriser
     17 */
     18function composer_autoriser(){}
     19
    1420
    1521
     
    1723 * Autorisation de voir le menu Composer
    1824 *
     25 * @uses autoriser_composer_executer_dist()
     26 *
    1927 * @param  string $faire Action demandée
    2028 * @param  string $type  Type d'objet sur lequel appliquer l'action
     
    2533**/
    2634function autoriser_composer_menu_dist($faire, $type, $id, $qui, $opt){
    27     return autoriser("acceder", "composer", null, $qui, $opt);
     35        return autoriser("executer", "composer", null, $qui, $opt);
    2836}
    2937
     
    3139 * Autorisation d'accéder à la page Composer
    3240 *
    33  * Uniquement les webmestres
     41 * @uses autoriser_composer_executer_dist()
    3442 *
    3543 * @param  string $faire Action demandée
     
    4149**/
    4250function autoriser_composer_acceder_dist($faire, $type, $id, $qui, $opt){
    43     return $qui['webmestre'] == 'oui';
     51        return autoriser("executer", "composer", null, $qui, $opt);
    4452}
     53
     54/**
     55 * Autorisation de générer le fichier composer.json
     56 *
     57 * @uses autoriser_composer_executer_dist()
     58 *
     59 * @param  string $faire Action demandée
     60 * @param  string $type  Type d'objet sur lequel appliquer l'action
     61 * @param  int    $id    Identifiant de l'objet
     62 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     63 * @param  array  $opt   Options de cette autorisation
     64 * @return bool          true s'il a le droit, false sinon
     65**/
     66function autoriser_composerjson_modifier_dist($faire, $type, $id, $qui, $opt){
     67        return autoriser("executer", "composer", null, $qui, $opt);
     68}
     69
     70/**
     71 * Autorisation d'utiliser composer
     72 *
     73 * @uses autoriser_composer_acceder_dist()
     74 *
     75 * @param  string $faire Action demandée
     76 * @param  string $type  Type d'objet sur lequel appliquer l'action
     77 * @param  int    $id    Identifiant de l'objet
     78 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     79 * @param  array  $opt   Options de cette autorisation
     80 * @return bool          true s'il a le droit, false sinon
     81**/
     82function autoriser_composer_executer_dist($faire, $type, $id, $qui, $opt){
     83        return $qui['webmestre'] == 'oui';
     84}
  • _plugins_/composer/trunk/composer_options.php

    r93343 r93345  
    2525        /** @var string
    2626         *     Chemin complet où seront stockés les packages.
    27          *
    2827         *     On met un chemin absolu car composer.json ne sera pas forcément
    29          *     dans le répertoire parent (mais probablement dans _DIR_TMP).
     28         *     dans le répertoire parent (mais probablement dans config/).
    3029         */
    3130        define('_ROOT_VENDOR', _ROOT_RACINE . 'vendor/');
     
    3332
    3433
    35 // Générer le composer.json s'il n'existe pas.
    36 // il faudrait un pipeline lors de la génération des matrices tmp/cache/charger_options.php et autres.
    37 if (!file_exists(_FILE_COMPOSER_JSON) or _request('exec') == 'admin_plugin') {
    38         include_spip('inc/composer_php');
    39         composer_generer_json();
     34// Générer ou régénérer le composer.json
     35if (test_espace_prive() and in_array(_request('exec'), array('composer', 'admin_plugin'))) {
     36        include_spip('inc/autoriser');
     37        if (autoriser('modifier', 'composerjson')) {
     38                include_spip('inc/composer_php');
     39                composer_generer_json();
     40        }
    4041}
    4142
  • _plugins_/composer/trunk/formulaires/jouer_composer.php

    r93343 r93345  
    22
    33function formulaires_jouer_composer_charger_dist() {
     4        if (!autoriser('executer', 'composer')) {
     5                return null;
     6        }
     7
    48        $valeurs = array();
    5 
    69        $valeurs['_composer_json'] = file_get_contents(_FILE_COMPOSER_JSON);
    710        $valeurs['_composer_phar'] = file_exists(_DIR_COMPOSER . 'composer.phar');
  • _plugins_/composer/trunk/inc/composer_php.php

    r93343 r93345  
    1212if (!defined('_ECRIRE_INC_VERSION')) return;
    1313
    14 include_spip('inc/composer_json');
    15 
    1614/**
    1715 * Calculer et générer le json de composer
     
    2422**/
    2523function composer_generer_json() {
     24        include_spip('inc/composer_json');
    2625        $Composer = pipeline('preparer_composer_json', new Composer_JSON());
    2726        $json = $Composer->get_json();
  • _plugins_/composer/trunk/paquet.xml

    r93343 r93345  
    22        prefix="composer"
    33        categorie="outil"
    4         version="1.0.0"
     4        version="1.0.1"
    55        etat="experimental"
    66        compatibilite="[3.1.0-rc;3.1.*]"
     
    1616        <licence>GNU/GPL</licence>
    1717
     18        <pipeline nom="autoriser" inclure="composer_autorisations.php" />
    1819        <pipeline nom="preparer_composer_json" action="" />
    1920
  • _plugins_/composer/trunk/readme.md

    r93343 r93345  
    4343par le pipeline `preparer_composer_json`.
    4444
    45 Ce fichier est créé par défaut dans `tmp/composer.json` (malheureusement
    46 on ne peut pas être certain que apache puisse écrire à la racine de SPIP,
    47 donc on n'essaie pas).
     45Ce fichier est créé par défaut dans `config/composer.json` lorsqu'on
     46passe sur l'une des pages `exec=admin_plugin` ou `exec=composer`
    4847
     48Il devient alors possible d'appliquer Composer sur ce fichier json,
     49ce qui installe les librairies dans le répertoire `vendor/` à la racine
     50du site. Il faut donc se mettre dans une terminal, dans le répertoire `config/`
     51et appeler `php composer.phar update` ou `composer update` selon sa configuration
     52locale.
    4953
     54La page `exec=composer` peut s'occuper de l'installation de Composer
     55et de son utilisation, si les droits accordés au serveur sont suffisants.
    5056
    5157
Note: See TracChangeset for help on using the changeset viewer.