Copyrights Guard
Ce que c'est
Copyrights Guard est un module Drupal qui applique des restrictions de droits d'auteur au niveau de champs individuels. Pour tout type d'entité qu'un administrateur marque comme géré, il détermine champ par champ si la personne qui consulte actuellement peut voir une valeur protégée, et masque tout élément restreint ou non enregistré à tout le monde, sauf au propriétaire du site.
Il constitue la moitié « application » d'un système en deux parties : une famille distincte de modules, field_copyright, copyrights et copyrights_ext, enregistre qui détient quels droits sur un contenu, et Copyrights Guard n'agit que d'après ce que ces enregistrements indiquent. Il est construit et utilisé en développement sur la propre plateforme de recherche de MADDev, où il protège des passages scripturaires et des traductions comme premier contenu connecté ; il n'est pas encore en service sur un site public.
En un coup d'œil
- Modules
copyrights_guard, le seul module ; aucun sous-module- Drupal core
- 10 ou 11
- Prérequis
- Aucune dépendance obligatoire en dehors de Drupal core
- Types d'entité
- Aucun type d'entité propre ; il s'agit d'une couche de politique au-dessus des champs sur les types d'entité fournis par d'autres modules
- Fonctionne avec
- Tout type d'entité configuré avec un champ de licence et un ou plusieurs champs à protéger
- Extrait d'usage équitable
- Un court extrait public autorisé sur du contenu restreint, 30 mots par défaut
- Statut
- Conçu et utilisé en phase de développement sur la plateforme de recherche propre à MADDev, protégeant des passages d'Écritures et des traductions comme son premier contenu connecté. Pas encore en service sur un site public.
Ce que cela apporte à un site Drupal
Contrôle d'accès au niveau des champs
Toute la surface d'application du module repose sur un seul hook, hook_entity_field_access(). Il n'intervient que sur l'opération d'affichage : sur une entité gérée, les champs configurés comme champs de contenu sont interdits à tout utilisateur autre que l'utilisateur 1, le compte du propriétaire du site, tandis que tous les autres champs, tels que le titre, la citation, la provenance ou d'autres métadonnées, restent intacts et publics. L'édition et la suppression sont entièrement laissées au gestionnaire d'accès propre à l'entité hôte. Le hook régit le chemin de rendu de l'API Field de Drupal ; un chemin de rendu qui lit directement la valeur d'un champ, en contournant cette couche, n'est pas couvert et nécessite son propre contrôle.
Service
Le service copyrights_guard.guard (classe CopyrightGuard) est l'API du module destinée à d'autres codes :
- si un type d'entité est géré, et lesquels de ses champs sont protégés
- si une entité donnée est restreinte, ou ne dispose d'aucune licence enregistrée
- la licence, le titulaire des droits et le contact d'une entité
- un extrait d'un texte au titre du fair use
Paramètres
Un formulaire d'administration à /admin/config/content/copyrights-guard, derrière la permission administer site configuration, permet à un administrateur de choisir quels types d'entités sont gérés, d'ajouter des identifiants supplémentaires de licence restreinte et de définir la longueur de l'extrait de fair use. Le reste de copyrights_guard.settings, la correspondance de chaque type géré vers ses champs de licence, de détenteur, de contact et de contenu, est défini directement dans la configuration plutôt que via le formulaire.
Commande Drush
copyrights-guard:incomplete (alias cg:incomplete) liste chaque entité gérée sans licence enregistrée, la liste de travail de secours du module.
Décisions de conception
- Restreindre l'accès au contenu, pas au catalogue. L'application agit champ par champ plutôt que sur l'entité entière, de sorte que le titre, l'existence, la paternité et la citation d'une œuvre restreinte restent publics, et seuls le ou les champs de contenu configurés pour ce type sont masqués.
- Seul le propriétaire du site voit le contenu restreint. L'exception est le compte du propriétaire du site (utilisateur 1), délibérément pas une permission, afin qu'aucun rôle ne puisse se voir accorder l'accès par accident.
- Refus par défaut. Une entité gérée sans licence enregistrée est automatiquement traitée comme restreinte : publier quelque chose à tort est considéré comme l'échec le plus grave, et masquer quelque chose qui aurait pu légalement être affiché est considéré comme l'échec le moins grave.
- Les marqueurs de licence libre sont vérifiés avant les marqueurs de restriction. Une véritable mention Creative Commons ou de domaine public comporte souvent encore une mention de copyright, car la licence Creative Commons elle-même repose sur le droit d'auteur, donc le module recherche d'abord les termes de licence libre, afin d'éviter de restreindre à tort une œuvre sous licence libre.
- L'extrait relevant de l'usage équitable est plafonné à la moitié de la longueur du texte source, et non à un nombre fixe de mots, afin qu'un texte protégé court ne puisse pas être transformé en un extrait qui constitue de fait l'œuvre entière.
- Le mappage des champs est entièrement piloté par la configuration. Un nouveau type d'entité gérée est configuré via les paramètres, et non par le code, de sorte que le module ne code jamais en dur un type d'entité ou un nom de champ particulier.
Démarrer un projet.
Dites-nous ce qui doit être protégé sur votre site, et ce qui doit rester visible autour de celui-ci.