[RESOLU]Gestion répertoires téléchargement par différentes personnes
Bonjour,
Je suis enseignant et je souhaite que mes élèves puissent montrer leur projet sur mon site internet pluxml. Pour cela je pensais leur mettre à disposition un dossier dans lequel ils mettent leur fichier html, css,... par ftp. Mon soucis est que je souhaite que les élèves ne puissent avoir accès qu'à leur dossier et n'accèdent à aucun cas à la totalité de l’arborescence. Avez-vous une idée pour gérer cela?
Je suis enseignant et je souhaite que mes élèves puissent montrer leur projet sur mon site internet pluxml. Pour cela je pensais leur mettre à disposition un dossier dans lequel ils mettent leur fichier html, css,... par ftp. Mon soucis est que je souhaite que les élèves ne puissent avoir accès qu'à leur dossier et n'accèdent à aucun cas à la totalité de l’arborescence. Avez-vous une idée pour gérer cela?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
En supposant que ton serveur Web soit Apache et qu tu as les droits pour modifier la config, la directiveUserDir est faite pour cela.
Voir la documentation
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Tu peux déjà activer l'option dans Paramètres > Configuration avancée > Utiliser un dossier images et documents différent pour chaque utilisateur
Consultant PluXml
Ancien responsable du projet (2010 à 2018)
Et pourquoi pas créer une page statique pour chaque élève qui appelle sa propre page HTML brute avec son propre CSS appliqué, tous deux tirés du répertoire de documents. Quel beau concours!
Attendons une réponse éventuelle du demandeur si l'idée se précise.
Pour des pages statiques, il faut utiliser cette règle : et créer un dossier public_html dans le dossier de chaque utilisateur.
Pour les scripts PHP, c'est moins évident. Il faut que je cherche sur le net. J'ai fait un essai sur un orangepi sous Debian mais cela ne marche pas.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Bonjour,
Par exemple chez mon hébergeur j'ai la possibilité de créer 10 accès FTP secondaires.
On pourrait donc imaginer créer un dossier travaux-eleves dans le site principal et dans celui-ci les sous-dossiers élèves ( dans mon cas je serai limité à 10 mais on doit pouvoir sans problème trouver d'autres solutions d'hébergement) auquel on attribue cet accès FTP secondaire.
Et ce sous-dossier élève pourrait même être un pluxml "en entier".
Ce qui nous donnerait la structure suivante:
site-principal (pluxml)
core
data
plugins
thèmes
travaux-eleves
eleve-1
eleve-2 (par exemple un pluxml)
Cordialement
L'idée se précise. Effectivement une page statique comme le décrit Pierre m'interesse. Donc une page par projet pour un groupe de 3 à 5 élèves serait la meilleure idée pour que les élèves puissent mettre leur css et html librement. D’où la question comment restreindre l'accès admin à un groupe d'élève pour une page statique?
Une petite précision par rapport à ce que tu souhaites.
Ton groupe d'élèves n'aurait besoin que de pouvoir rédiger une page statique ?
Parce que si tu souhaites qu'il puisse mettre leur css il faut qu'ils aient également accès à un dossier où ils transfèrent leur css, à moins de le mettre directement dans leur page statique ( ce qui peut se concevoir si ce n'est pas un css trop long).
Effectivement il faudrait avoir un accès à un dossier pour mettre le css. J'ai suivi sur le plugin MyPrivateStatic fil http://forum.pluxml.org/viewtopic.php?id=2923&p=3 cela commence à être compliqué la solution que j'entrevoie est de gérer cela au niveau sftp. Qu'en pensez-vous?
Il me semble avoir compris que ce n'était pas que la rédaction d'une page que tu voulais permettre à tes élèves. Alors je pense que l'idée de sous-sites correspond plus à ce que tu veux faire et surtout réglerait facilement le problème de droits d'accès suivant les groupes d'élèves.
Et toi dans ton site, par exemple, tu fais une page statique (travaux d'élèves) où tu peux présenter les travaux d'élèves et indiquer le lien vers ceux-ci.
Cordialement
Effectivement ce n'est pas qu'une page que je souhaite que mes élèves remplissent, il faudrait qu'ils mettent en œuvre du html et du css dans un dossier présentant leur projet. Cela me fait au minimum 5 dossiers qui chacun serait géré par 3 élèves et donc accessibles en lecture écriture par eux. Sachant que ces pages doivent être lisibles pour n'importe quel visiteur du site et que je puisse garder un contrôl total sur leur travaux. Une structure serait effectivement de prévoir 5 sous sites pour chacun des projet plus le mien qui renverrai sur les 5 sites élèves. Cela me semble trop important du moins dans un premier temps. Je vais plutôt me diriger vers une page statique de mon site qui renvoi vers leur dossier en utilisant pour ma page statique http://simplepie.org/ ou plutôt http://moonmoon.org/ qui renvoie au dossier des projets réalisé par les élèves, le tout géré avec http://mysecureshell.sourceforge.net/fr/index.html.
Qu'en pensez-vous?
Ton serveur tourne sous quel OS ? Windows, Linux, FreeBSD, ...
As-tu des droits administrateur sur ce serveur ?
J'ai un serveur NGINX qui tourne sur Debian. Dans ce cas, il est assez facile de créer pour chaque utilisateur ou élève un dossier public_html dans chaque dossier utilisateur qui héberge une version totalement indépendante de Pluxml pour chacun, ou plus simplement de créer un site purement statique sans cms.
Quelle est la contrainte qui t'oblige à utiliser Nginx ? Ce serveur est un peu plus compliqué à paramétrer que Apache, et il faut corriger légèrement la fonction plxUtils;;getRacine() de Pluxml.
Tu évoques SimplePie et Moonmoon qui sont 2 bibliothèques pour rassembler des flux RSS mais les pages statiques de Pluxml ne sont pas gérées par les flux RSS.
Il faut que tu partages un groupe avec tes éléves pour accéder à leurs travaux, à moins de te connecter en root où tu auras tous les super pouvoirs.
Une installation neuve de Pluxml pèse environ 1.6Mo. Même avec 30 élèves, cela fera seulement 48 Mo. Vu la taille mini des disques durs (500Go). Cela ne pose aucun souci matériel.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Mais pourquoi pas.
Cependant il te faudra quand même créer 5 dossiers différents par ftp et leur donner une adresse pour qu'ils puissent être lisibles par le public ( du genre http:// tondomaine/groupe1 ou http://groupe1.tondomaine). Je ne suis donc pas persuadé que cela soit beaucoup plus simple.
Et cela depend aussi de l'hébergement que tu as.
Mais comme je ne connais pas ces solutions que tu proposes, je passe sans doute à côté de toutes leurs possibilités.
De toute façon il n'y jamais de solution ni parfaite ni unique.
Cordialement
Voici la config de Nginx qui va bien pour avoir un site web totalement indépendant pour chaque utilisateur de ton serveur :
Ces lignes sont à ajouter dans le bloc server {} du fichier /etc/nginx/sites-availables/default sur une distribution Debian/Jessie ou autre Linux.
Cela remplace la directive UserDir sur un serveur Apache.
Le fichier complet est disponible ici
Par contre, il faut corriger les valeurs $dirname et $racine de la fonction plxUtils:getRacine() dans le fichier core/lib/class.plx.utils.php, vers la ligne 568 :
Dans le dossier de chaque utilisateur, il faut créer un dossier public_html. Penser à corriger les droits en écriture pour Pluxml.
J'ai fait les tests sur un Bananapi.
Note qu'à côté de Pluxml tu peux créer un site entièrement statique dans un dossier indépendant
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Je te propose un nouveau paramétrage de Nginx pour résoudre ton problème sans avoir à modifier Pluxml. J'ai fait un essai avec la version 5.5-beta3 de Pluxml sous Debian/Jessie. La modif est à faire dans le fichier /etc/nginx/sites-enabled/default
Voici la copie d'écran d'écran qu'on obtient après un appel à phpinfo():
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2