Wikini

EmpecherLaCreationDunNouvelUtilisateur

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-54-198-94-76.compute-1.amazonaws.com
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


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)
-- 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)?
Commentaires [Cacher commentaires/formulaire]