Il peut être utile de vouloir empécher la création de nouveaux utilisateurs sur un wiki (dans le cas, par exemple, d'un groupe de travail fermé).
Solution 1
La méthode est un peu brute.
elle consiste à supprimer le code Html affichant le formulaire génant
En réalité nous le mettons en commentaire...afin de pouvoir le réutiliser ultérieurement.
Dans le fichier
/action/usersettings.php modifier la partie de code suivante (on rajoute: <!-- ainsi que -->)
<td><input type="submit" value="Identification" size="40" /></td>
</tr>
<!-- <tr>
<td align="right"></td>
<td width="500"><?php echo $this->Format("Les champs suivants sont à remplir si vous vous identifiez pour la première fois (vous créez ainsi un compte)"); ?></td>
</tr>
<tr>
<td align="right">Confirmation du mot de passe :</td>
<td><input type="password" name="confpassword" size="40" /></td>
</tr>
<tr>
<td align="right">Adresse de courriel :</td>
<td><input name="email" size="40" value="<?php echo $email ?>" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Nouveau compte" size="40" /></td>
</tr> -->
</table>
<?php
print($this->FormClose());
}
?>
Rapide et pratique. --
SloYvY
Discussions
Parallèlement à la solution 1, il est possible de renommer le fichier usersettings.php original par un nom tordu, permettant aux administrateurs fonctionnels de l'utiliser dans une page dont ils ont seuls les droits de lecture. La solution 1 reste, malgré tout, temporaire et le besoin devra être traitée correctement dans la future
InterfaceDAdministrationWikiNi (peut-être prévue pour la version 0.5). --
CharlesNepote
- En fait j'ai fait plusieurs actions userconnecte.php (les utilisateurs ayant un compte uniquement peuvent se connecter) usersettings.php (les utilisateurs connectés modifient leur compte) puis useradd.php (les "admins" peuvent ajouter un nouveau compte) ; j'avais pas tout de suite compris le système des actions mais en fait c'est ce qui me parrait le plus simple
- je suis partit à chaque fois comme l'exemple ci-dessus : l'action usersettings.php de base en supprimant les "mentions" inutiles pour chaque fonction
- bref mon but et de faire un Wiki restreint à un groupe donné, je me demande si cette solution est "propre" ? mais surtout si c'est réellement restreint ?
- je vais tester un peut plus en profondeur-- SylvaiN
Il faudrait également commenter le code php correspondant, autrement une personne peut quand même effectuer une inscription au site. --
PatrickPaul
Solution 2
Plutôt que d'enlever le code, remplaçons le par l'envoi d'un courriel à l'administrateur.
L'avantage c'est de contrôler qui veut s'enregistrer sur le site, et de faire un filtrage en demandant par exemple les motivations d'accès...
Le code PHP dans le fichier
actions/usersettings.php se situ dans le
else de
// otherwise, create new account,
<?php
......
$administrateur = $this->config["mysql_user"]."@".$this->config["mysql_host"];
mail($administrateur,"[WikiNi] Demande d'ouverture de compte","Utilisateur : ".$name."\r\nCourriel : ".$email."\r\nMot de passe : <".$password."><".$confpassword.">","From:".$administrateur );
$error = "Demande envoyé à l'administrateur du site, vous recevrez une réponse sous peu.";
......
?>
<?php
......
$this->Query("insert into ".$this->config["table_prefix"]."users set ".
"signuptime = now(), ".
"name = '".mysql_escape_string($name)."', ".
"email = '".mysql_escape_string($email)."', ".
"password = md5('".mysql_escape_string($_POST["password"])."')");
// log in
$this->SetUser($this->LoadUser($name));
// forward""
$this->Redirect($this->href());
......
?>
Pour plus de finesse on pourrait créer une page de création de compte à part, accessible uniquement par l'administrateur ! (A suivre)
- J'ai dupliqué l'action de login pour n'autoriser son utilisation que par un certain utilisateur - en dur dans le code -, je sais c'est dur mais je pense que dans la table des users on peut ajouter une info pour connaitre les utilisateurs admin ou pas, cela permettrais une configuration plus fine.
--
HuguesFontaine
Excellente idée! A quand sa concrétisation?
J'aimerais beaucoup disposer d'un moyen simple permettant à l'administrateur seul, de pouvoir inscrire les futurs utilisateurs du site, et que ces utilisateurs n'aient qu'à se logger lorsqu'ils se connectent (Sans qu'ils n'ayent besoin de s'inscrire au préalable puisqu'ils le seront déjà par l'administrateur du site)?