Commit 4bd79eba authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Réorganisation de la documentation

parent db6eebd2
Loading
Loading
Loading
Loading
Loading
+80 −39
Original line number Diff line number Diff line
# signature
# Guide de développement

Le module signature permet d'intégrer à votre application un système de signature numérique. Cela se fait via une application tiers (un **parapheur numérique**).

## Installation de base

## Présentation
### Ajouter la dépendence vie composer

**Unicaen Signature** est un module permettant de gérer l'accès à un *parapheur numérique*.
```bash
composer require unicaen/signature
```

### Fonctionnalités base
 - Modèle de gestion des signatures envoyées
 - Uniformisation des échanges avec un parapheur
### Configuration de base

### Processus de validation
 - Configuration de processus de validation de document (étapes)
 - Interface d'administration
Des fichiers de configuration `.dist` sont disponibles dans `vendor/unicaen/signature/config` avec quelques exemple de configuration : 

```bash
# Copier le modèle de base de configuration
cp vendor/unicaen/signature/config/unicaen-signature.local.php.dist config/autoload/unicaen-signature.local.php
```

### Parapheurs pris en charge
 - Esup
 - ...
Adapter la configuration selon votre usage, par défaut, le fichier de configuration propose une configuration avec le parapheur ESUP et le parapheur Interne.

## Installation dans votre application
 - [Configuration du parapheur ESUP](doc/config/parapheur-esup.md)
 - [Configuration du parapheur INTERNAL](doc/config/parapheur-interne.md)

### Prérequis
> Vous pouvez également [Développer un nouveau parapheur](doc/dev/parapheur-dev.md)

 - PHP 8.2
### Base de données

### Dépendance PHP
Vous devez installer les tables utilisées par le module : 

Ajouter l'adresse du dépôt Unicaen si besoin dans le composer JSON : 
![Tables du module](doc/dev/database.png)

```json
{
  "repositories": [
    {
      "type": "composer",
      "url": "https://gest.unicaen.fr/packagist"
    }
  ],
  "name": "VotreApplication",
  "Etc": "..."
}
```
#### Via les entitées Doctrine

Puis ajouter la dépendance
Dans le fichier de configuration de votre application (normalement `config/autoload/global.php`), éditez le `paths` des entitées pour y ajouter les entitées du module **signature** : 

```bash
require 'unicaen/signature'
```php
<?php
return array(
    // ...
    'doctrine' => array(
        // ...
        'driver' => array(
            'my_entities' => array(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'cache' => 'array',
                'paths' => array(
                    // Emplacement des entitées de UnicaenSignature
                    __DIR__ . '/../../vendor/unicaen/signature/src/Entity/Db',
                ),
            ),
        ),
    ),
);
```

Copier la configuration par défaut : 
Puis mettez à jour le modèle de la base avec les commandes *Doctrine*.

#### Via SQL

Sinon, utiliser directement SQL [Script SQL pour créer les tables](doc/dev/database-install-sql.md) :

### Activer le module

Ajoutez **UnicaenSignature** dans `config/application.config.php` :

```php
<?php
$config = array(
    'modules' => array(
        // ...
        'UnicaenSignature'
    ),
    // ...
);
// ...
return $config;

```bash
cp vendor/unicaen/signature/confing/unicaen-signature.local.php.dist config/autoload/signature.local.php
```

Référencer le modèle Doctrine : [Configuration de la base de données](doc/config/database.md) 
### Dossier des documents

Vérifiez que le dossier d'écriture des documents à signer est bien accessible en écriture. C'est le dossier indiqué dans la clef `documents_path` (par défaut `./data/documents/signature`)

A cette étape, le module est opérationnel et permet d'utiliser ces services pour les documents de votre application.

Puis configurez le parapheur : 
## Utilisation du module

 - **Esup** : [Configuration du parapheur ESUP](./doc/config/config-parapheur-esup.md)
- [x] [Usage simple pour signer des documents](doc/dev/usage.md)
- [x] [Utilisation en ligne de commande](doc/dev/commands.md)
- [ ] [Processus de signature](doc/dev/process.md)
- [ ] [Interfaces du module](doc/dev/ui.md)
- [ ] [Développer un parapheur](doc/dev/parapheur-dev.md)

> Vous pouvez configurer plusieurs parapheurs
## TODO
- [ ] Documentation : Processus
- [ ] Documentation : Ui du module
- [ ] Documentation : Développer un parapheur
- [ ] Système de rappel des destinataires pour le parapheur interne
- [ ] Commande de rappel pour les observateurs
- [ ] Suppression d'un document signé (avec restauration du document d'origine)
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ return [
            ///////////////////////////////////////
            // Activation d'un logger autonome
            'enable'          => false, // Actif
            'level'           => \Monolog\Logger::DEBUG, // Niveau de log
            'level'           => \Monolog\Logger::INFO, // Niveau de log
            'file'            => __DIR__ . '/../../logs/signature.log', // Fichier d'écriture
            'file_permission' => 0666,

+0 −48
Original line number Diff line number Diff line
# Configurer le parapheur ESUP

## Autoriser l'IP de votre application dans Esup

> L'accès à l'API REST de **Esup** necessite d'autoriser l'accès à l'IP de votre application.
> 
> Fichier dans Esup `install/path/conf`
> 
> Relancer Esup pour prendre en compte la configuration

## Configuration

```php
<?php
// config/autoload/signature.local.php
return [
    'unicaen-signature' => [
        // Parapheurs
        'letterfiles' => [
            // ----------------------------------- ESUP
            [
                'label'     => 'ESUP', // Nom visible
                'name'      => 'esup', // Unique
                'description' => 'Parafeur numérique ESUP',
                'default'   => true, // Parpheur par défaut
                'class'     => \UnicaenSignature\Strategy\Letterfile\Esup\EsupLetterfileStrategy::class,

                // Niveaux de signature disponible
                'levels'    => [
                    \UnicaenSignature\Utils\SignatureConstants::VISA_HIDDEN => 'hidden',
                    \UnicaenSignature\Utils\SignatureConstants::VISA_VISUAL => 'visa',
                    \UnicaenSignature\Utils\SignatureConstants::SIGN_VISUAL => 'pdfImageStamp',
                    \UnicaenSignature\Utils\SignatureConstants::SIGN_CERTIF => 'certSign',
                    \UnicaenSignature\Utils\SignatureConstants::SIGN_EIDAS => 'nexuSign',
                ],

                // Accès à ESUP
                'config'    => [
                    // URL de l'API Esup
                    'url' => "https://esup.votredomaine.ext",
                    // Créateur
                    'createdByEppn' => 'eppn@votredomaine.ext',
                ]
            ]
        ]
    ]
];
```
+6 −0
Original line number Diff line number Diff line
@@ -61,3 +61,9 @@ Dans la partie `config`, renseignez les informations relatives à votre instance
## Côté ESUP

Côté ESUP, une configuration est requise pour authoriser votre application à communiquer avec lui.

L'accès à l'API REST de Esup necessite d'autoriser l'accès à l'IP de votre application.

Fichier dans Esup install/path/conf

Relancer Esup pour prendre en compte la configuration
Loading