Le plugin ACLs

Ce plugin permet de restreindre l’accès à un dossier à un ou plusieurs utilisateurs.

Vous allez pouvoir définir des dossiers qui ne seront visibles qu’à certains utilisateurs. Ceux qui n’y auront pas accès, ne les verront pas; comme s’ils étaient inexistants.

1. Mise en place

1.1. Création des fichiers .htaccess et .htpasswd

La gestion des utilisateurs repose sur le concept des protections dites basique d’Apache et donc implique l’utilisation d’un fichier .htaccess et .htpasswd.

Dans le fichier .htaccess, il faut faire mention des lignes pour inclure la protection. Voici un exemple (veillez à indiquer le chemin complet vers votre fichier .htpasswd)

AuthUserFile /home/public_html/.htpasswd
AuthName "L'accès à ce site requiert une authentification forte"
AuthType Basic
Require valid-user

Le fichier .htpasswd va contenir la liste des utilisateurs qui pourront accéder à votre site. Il existe des outils en ligne pour générer de tels fichiers; par exemple aspirine.org

Christophe:$apr1$WX8Tb9hW$WxAZv3tEiGoWF5FLZ.iTN/
Simon:$apr1$opmWA7CM$ejnEKts4rgS16nWUqrcLh/
Marc:$apr1$VGpbAIzg$Vq0Wl7ec/CPH7dlwNdRr.1

Marknotes ne propose pas encore d’outils de création de ces fichiers, il faudra donc les créer à la main.

1.2. Paramétrage des droits d’accès

Une fois que vous aurez défini la liste des utilisateurs dans le fichier .htpasswd, il vous suffit d’éditer votre fichier settings.json et vous insipirant de l’exemple ci-dessous.

2. Paramétrage

La définition des restrictions se passe dans le fichier settings.json se trouvant à la racine de votre site web.

Les dossiers qui sont accessibles à tout le monde ne doivent pas être repris dans la liste.

Ceux devant être protégés sont à mentionner au niveau de la clef plugins.options.task.acls.folders, une ligne par dossier. Il suffit de mentionner le nom du dossier en n’indiquant que le nom relatif (il ne faut pas mentionner le nom complet mais seulement depuis /docs).

Vous pouvez spécifier un sous-dossier : par exemple, vous auriez un dossier /docs/Common qui contiendrait des notes mais aussi des sous-dossiers (un par membre de l’équipe p.ex.). On peut restreindre l’accès au dossier /docs/Common/UserName à ce seul utilisateur. Christophe verrait donc son dossier mais pas le dossier de Marc ni celui de Simon. Par contre, il pourra voir les notes se trouvant dans /docs/Common ainsi que /docs/Common/team (si ce dossier-là n’est pas listé).

{
    "plugins": {
        "options": {
            "task": {
                "acls": {
                    "folders": {
                        "Accounting": ["Christophe"],
                        "Development": ["Christophe", "Simon", "Marc"]
                        "Common/Christophe": ["Christophe"],
                        "Common/Marc": ["Marc"],
                        "Common/Simon": ["Simon"]
                    }
                }
            }
        }
    }
}