rejetto forum

Créer un répertoire sans pour autant donner l'autorisation d'effacer

ASVT · 10 · 6734

0 Members and 1 Guest are viewing this topic.

Offline ASVT

  • Occasional poster
  • *
    • Posts: 24
    • View Profile
Re-bonsoir,

Je viens de regarder la possibilité offerte par un template étendu: donner la possibilité à un utilisateur de créer un répertoire.

Dans cette optique, il faut bien entendu que l'utilisateur est un droit en écriture. Néanmoins, sauf si je me trompe, on doit aussi lui donner un droit en suppression.
Sauf s'il existe une contrainte technique, je ne vois pas pourquoi ce droit en suppression doit être autorisé. Certes, il faut avoir relativement confiance dans l'utilisateur pour lui octroyer le droit en écriture (création de répertoire + envoi de fichiers), mais pas pour autant lui laisser la possibilité d'effacer l'ensemble du contenu d'un répertoire (une fausse manipulation est vite arrivée... surtout que le bouton SUPPRIMER LA SELECTION est juste à côté de ARCHIVER LA SELECTION .tar).

Bref, je lance l'idée...


Offline Mars

  • Moderator
  • Tireless poster
  • *****
    • Posts: 2059
    • View Profile
il y a deja des macros  pour ca , regarde du coté de 'set item'

pris dans le wiki

access / delete / upload
you can set permissions on the item, by specifying a list of usernames.
Example: set item|videos|upload=robert will give account robert the ability to upload files in /videos.
Moreover, you can prefix permission by add or remove. In the previous example you set the upload permission. If mike already had upload permission, it is now lost. To add robert instead of just overwriting, you should
{.set item|videos|add upload=robert.} Now mike is happy too. As well, if you change your mind, and want to revoke your grant, just
 {.set item|videos|remove upload=robert.}.
You can specify more than one username this way: robert;mike;rupert.
Special usernames are @anonymous @any account @anyone.

access / delete / upload

{.set item|new_folder|upload=robert;marcel.}          donne à new_folder robert et marcel seuls en upload
{.set item|new_folder|add upload=alfred;firmin.}      ajoute alfred et firmin en upload à new_folder
{.set item|new_folder|del upload=robert.}               retirerobert des upload de new_folder

à toi d'utiliser ces macros dans le bon ordre et eventueelement les comptes prédéfinis @anonymous @any account @anyone.

« Last Edit: February 06, 2010, 09:31:58 PM by Mars »


Offline SilentPliz

  • Moderator
  • Tireless poster
  • *****
    • Posts: 1298
  • ....... chut ! shh!
    • View Profile
Salut Arnaud !  :)


En effet, d'une certaine manière, c'est une contrainte technique (contournable heureusement).
La création/suppression de répertoire, n'est pas gérée actuellement par un menu quelconque de HFS; elle l'est uniquement par les templates, via les macros.

Il était plus simple pour moi d'exiger l'ensemble de ces droits (accès, envois, suppression)... comme cela toutes les macros sont déjà dans le template... et je n'ai plus qu'a donner à qui le demande, les lignes à supprimer dans le template, selon ses besoins.

C'est difficile de trouver le bon compromis... celui que j'avais choisi me semblait le moins mauvais pour une utilisation "généraliste".
C'était plus pensé dans l'optique : 1 répertoire personnel par utilisateur, disposant de toutes ces permissions.

Donc : tpl modifié joint en bas de page, + un screenshot de ce que l'utilisateur ne disposant pas de droits de suppression verra.

Je ne sais pas quel template embarqué tu utilises, je te poste donc aussi la partie du code concernée, avec en bleu les parties effacées et en rouge les parties ajoutées.

Pour des restrictions plus ciblées, tu peux te référer au précédant message de Mars.

A bientôt! ;)

Olivier :)


Quote
</table>
{.if |{.and|%user%|{.!=|%user%|anonymous.}.}|
{.if|{.get|can access.}|
{.if|{.get|can delete.}|
{.if|{.get|can upload.}|
{.repeat|2|&nbsp;.}<a href="javascript:;" onmousedown="toggleDiv('xtd')" style="font-size:9pt;  color:#000000; background-color:#fff; border:2px solid #AB9F82;" <FONT SIZE=2>{.repeat|1|&nbsp;.}{.!Show / Hide extended functions.}{.repeat|1|&nbsp;.}</FONT></a>
 /if.}
 /if.}
 /if.}
/if.}

{.if |{.and|%user%|{.!=|%user%|anonymous.}.}|
{.if|{.get|can access.}|
{.if|{.get|can delete.}|
{.if|{.get|can upload.}|

<script language="javascript">
function toggleDiv(xtd){
if(document.getElementById(xtd).style.display == 'none'){
document.getElementById(xtd).style.display = 'block';
}else{
document.getElementById(xtd).style.display = 'none';
}
}
</script>


<div id="xtd" style="display:none;">

<table id='files' cellspacing='5'>

  <tr><td colspan='10' style="font-weight:bold; font-size:11pt; background:#e9c094; padding:6px 26px; border:2px solid #000; border-bottom:2px solid #000;">

  <div class='comment'>

<fieldset>
<legend><b>{.!Operations on Files & Folders.}</b></legend>
  <br />
<form method='post' id='filesfoldersoptions'>
{.repeat|2|&nbsp;.}<font color=firebrick><B>*</B></font><input type='text' name='fldname' value="{.!Filename/ Foldername.}" onclick="if(this.value=='{.!Filename/ Foldername.}')this.value=''" style="background-color:#fff; border:1px solid #456f85;" size="28">
      <input  type='submit' name='createfolder' value='{.!Create Folder.}'">
{.if|{.get|can delete.}|
      <input  type='submit' name='replacefolder' value='{.!Replace Folder.}'">
      <input  type='submit' name='deletefolder' value='{.!Delete File/ Folder.}'>
  <br />
</form>  

<CENTER><font color=firebrick><B>*</B></font><I>{.!Create a new Folder, replace an Folder, or type an "Foldername" or "Filename" to delete it..}</I>      
  <br />
<font color=firebrick><B>{.!CAUTION.} </B></font>: <I>{.!Replace a Folder deplace the old Folder (and contents) to the trash..}</I></CENTER>
  <br />
<form method='post' id='renameoption'>
{.repeat|2|&nbsp;.}<font color=firebrick><B>*</B></font><B>{.!Filename/ Foldername1.} :</B> <input type='text' name='oldname' value="{.!Current name1|Current name.}" onclick="if(this.value=='{.!Current name1|Current name.}')this.value=''" style="background-color:#fff; border:1px solid #456f85;" size="28">
      <input type='text' name='newname' value="{.!New Name.}" onclick="if(this.value=='{.!New Name.}')this.value=''" style="background-color:#fff; border:1px solid #456f85;" size="28">
      <input type='submit' name='renamefile' value='{.!Rename File.}'>
</form>  
  <CENTER><font color=firebrick><B>*</B></font><I>{.!Renaming a Folder or a File in the current folder.}</I>.</CENTER>
/if.}
</fieldset>
  <br />

<fieldset>
<legend><b>{.!Comment Files & Folders.}</b></legend>
  <br />
<form method='post' id='commentfilefolderoption'>
{.repeat|2|&nbsp;.}<font color=firebrick><B>*</B></font><input type='text' name='filecomment' value="{.!Filename/ Foldername.}" onclick="if(this.value=='{.!Filename/ Foldername.}')this.value=''" style="background-color:#fff; border:1px solid #456f85;" size="28"></b>
        <input id=texto name=text value="{.!Enter your comment here.}" onclick="if(this.value=='{.!Enter your comment here.}')this.value=''" style="background-color:#fff; border:1px solid #456f85;" onfocus="javascript:refresh='true';" size="77"  onchange="textsend();">
        <input type='submit' name='commentfile' value='{.!Comment.}'>
</form>  
  <CENTER><font color=firebrick><B>*</B></font><I>{.!Comment a file or a folder. Leave the comment field blank to delete the comment.}.</I></CENTER>  
  <CENTER><I>{.!The HTML commands are allowed (eg :.} <font color=firebrick><b>&lt;br&gt;</b></font> {.!for break line.}).</I></CENTER>
</fieldset>
{.if|{.^is admin.}        | <a href="/~adminpanel?remotefolder=%folder%">{.!Administration.}</a><br /> .}
{.if|{.^allow password.}  | <a href="/~selfpasschanger?remotefolder=%folder%">{.!Change Password1|Change Password.}</a><br /> .}
</div>
</tr>
</table>
</div>
 /if.}
 /if.}
 /if.}
/if.}


« Last Edit: February 07, 2010, 05:56:57 AM by SilentPliz »


Offline ASVT

  • Occasional poster
  • *
    • Posts: 24
    • View Profile
Très bien !!!! J'adore! Quel boulot!

Merci de "perdre" pas mal de votre temps pour mes quelques demandes; merci, merci!

Franchement, j'ai déjà compris l'histoire des templates... de là; à me mettre aux macros, pshuuut je sais déjà que cela dépasse mes compétences :)


Offline Mars

  • Moderator
  • Tireless poster
  • *****
    • Posts: 2059
    • View Profile
tu vois sp , je te le disais qu'il fallait y aller doucement , le pauvre il marche à peine, faut encore lui tenir la main ;D

prepares aussi une bonne bouteille de rhum pour le soigner , car il va avoir un sacré mal de crâne :)

(nous seront gentils avec lui, on boirra la bouteille avant de la lui casser sur la tête  ;D )
« Last Edit: February 07, 2010, 04:02:58 PM by Mars »


Offline SilentPliz

  • Moderator
  • Tireless poster
  • *****
    • Posts: 1298
  • ....... chut ! shh!
    • View Profile
Re-bonsoir,

Je viens de regarder la possibilité offerte par un template étendu: donner la possibilité à un utilisateur de créer un répertoire.

Dans cette optique, il faut bien entendu que l'utilisateur est un droit en écriture. Néanmoins, sauf si je me trompe, on doit aussi lui donner un droit en suppression.
Sauf s'il existe une contrainte technique, je ne vois pas pourquoi ce droit en suppression doit être autorisé. Certes, il faut avoir relativement confiance dans l'utilisateur pour lui octroyer le droit en écriture (création de répertoire + envoi de fichiers), mais pas pour autant lui laisser la possibilité d'effacer l'ensemble du contenu d'un répertoire (une fausse manipulation est vite arrivée... surtout que le bouton SUPPRIMER LA SELECTION est juste à côté de ARCHIVER LA SELECTION .tar).

Bref, je lance l'idée...

Information :

j'ai modifié beaucoup de choses dans les templates étendus de la bêta 257, dont celle-ci :

Par défaut, la gestion de la "création / suppression" de répertoire est désormais conforme à ce que tu demandais.

Tu n'es plus obligé de garder dans un coffre-fort le template que je t'avais modifié. ;)
« Last Edit: March 07, 2010, 02:48:27 AM by SilentPliz »


Offline ASVT

  • Occasional poster
  • *
    • Posts: 24
    • View Profile
Bon, c'est super.

Dans le même temps, avec une bonne formation et pas mal de documentation à lire, finalement je passe à un serveur de fichiers professionnel dès la semaine prochaine.

HFS est vraiment une solution que je recommande tout de même: sous windows (simple) et extrêmement rapide à mettre en place. Je le garde sous la main (enfin, dans ma clé) en permanence.




Offline SilentPliz

  • Moderator
  • Tireless poster
  • *****
    • Posts: 1298
  • ....... chut ! shh!
    • View Profile
Génial !

... si HFS a pu t'accompagner avant la transition, c'est parfait.

A bientôt! ;)

edit : si c'est pas indiscret, quelle solution as-tu retenue pour serveur?
« Last Edit: March 07, 2010, 02:52:31 AM by SilentPliz »


Offline ASVT

  • Occasional poster
  • *
    • Posts: 24
    • View Profile
Rien d'indiscret. Aujourd'hui, il existe 2 solutions possibles pour mon cas (éducation).
Ce sont les politiques académiques qui imposent telle ou telle solution.

Pour moi, ce sera donc "se3" pour Samba Edu 3 (en réalité, bien plus qu'un serveur de fichiers... il permet le déploiement d'applications, la gestion des droits,etc..). Un vieux comparatif permet de se faire une idée de ce qui est fait, et de son concurent ScribeNG. Evidemment, se3 suit les évolutions (debian version lenny par exemple, contrairement à ce que laisse penser ce comparatif).

Ces solutions nécessitent un serveur dédié (virtuel possible si c'est juste pour tester). Elles sont téléchargeables librement sur leurs sites officiels.



Offline SilentPliz

  • Moderator
  • Tireless poster
  • *****
    • Posts: 1298
  • ....... chut ! shh!
    • View Profile
En effet, c'est du solide !

Bon courage avec la "doc", qui doit être conséquente ! :)