Fork me on GitHub






Membre banni et droit d'accès
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
https://www.frxoops.org/modules/newbb/ ... id=167783#forumpost167783

Une remarque de Ghia dans ce post, m'a rappelé un script que j'avais fait il y a quelques temps pour m'affranchir de ce souci.

Ce que je vais décrire ci-dessous, se passe sur un site avec xoops 2.0.18.2.

Lorsqu'en tant que webmaster, vous déplacez un membre dans un groupe à accès restreint (banni par exemple), ce dernier conserve tous ses droits tant qu'il ne se déconnecte pas, ou que vous le déconnectez pas (en vidant la table session par exemple).

Mais c'était un peu sauvage de déconnecter tout le monde juste pour virer une personne !
J'ai donc préparé une page avec quelques lignes de code, dans laquelle, on indique simplement l'uid du membre à déconnecter et on valide.
Ainsi, lorsque j'ai viré le membre, je le déconnecte dans la foulée, et je suis tranquille.

Je joins 2 captures : une contenant la page de saisie de l'uid du membre à déconnecter.
Et l'autre la page de résultat après la validation de déconnexion (le pseudo du membre est cliquable, et on accès à son profil).
Je retrouve aussi un récap' des membres se trouvant dans le groupe des bannis.

Et ci-dessous, le script utilisé.
J'appelle ma page : bannis.php, et je la pose dans un dossier bannis à la racine du site.
Par défaut, on doit être connecté en tant qu'administrateur du site pour y accéder.
Mais on peut changer le groupe ayant le droit d'accéder à cette page.
<?php

include '../mainfile.php';
include 
XOOPS_ROOT_PATH.'/header.php';
include 
XOOPS_ROOT_PATH."/include/cp_functions.php";

global 
$xoopsDB$xoopsConfig;
if (
is_object($xoopsUser)){
$groupsok $xoopsUser->getGroups();
}
else {
$groupsok=99; }

if (!
in_array("1"$groupsok)) //si n'est pas dans le groupe "webmastre" - vous pouvez indiquer un autre id de groupe
    
{
    
redirect_header("../index.php",2"Vous n'avez pas les droits nécessaires pour accéder à cette page.");
    exit();
    }

//affiche le nombre de membres dans le groupe des bannis
$sqlbannis "select distinct uid from `".$xoopsDB->prefix("groups_users_link")."` where `groupid` = 4;"//changer l'id du groupe contenant les membres bannis
$resultbannis $xoopsDB->query($sqlbannis);
echo 
"Actuellement : ".mysql_num_rows($resultbannis)." membres dans le groupe des Bannis<br /><br />";
//fin affichage du nombre de membres dans le groupe des bannis

if (!empty($_POST['envoi']))
    {
    
$uid intval($_POST['uid']);
    if (
$uid != 0)
                {
                
$sql "select * from `".$xoopsDB->prefix("session")."` where `sess_data` LIKE CONVERT( _utf8 '%:"".$uid.""%' USING latin1 ) COLLATE latin1_swedish_ci;";
                
$result $xoopsDB->query($sql);
                if (
mysql_num_rows($result) == 0) {$message_remerciement "Ce membre n'était pas connecté.";}
                else {
$message_remerciement "";}

                while(
$data mysql_fetch_assoc($result))
                    {
                    
$message_remerciement .= $data['sess_ip'].'<br />';
                    
$sqldelete "delete from `".$xoopsDB->prefix("session")."` where CONVERT(`".$xoopsDB->prefix("session")."`.`sess_id` USING utf8) = '".$data['sess_id']."';";
                    
$resultdelete $xoopsDB->query($sqldelete);
                    }
//fin while
                
if (mysql_num_rows($result) == 0) {$message_remerciement .= "";}
                else {
                    
$postername XoopsUser::getUnameFromId($uid);
                    
$message_remerciement .= "<br />IP ci-dessus supprimée(s) de la base, et le membre correspondant à l'identifiant ".$uid." <b>(<a href="".XOOPS_URL."/userinfo.php?uid=".$uid."" target="_blank">".$postername."</a>)</b> a été déconnecté.";}
                }
//fin si
                
else {$message_remerciement "Vous devez entrer un identifiant numérique pour désigner le membre à déconnecter.";}
    }
?>

<html>
<head>
<title>Déconnexion d'un membre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">

function verifSelection() {if (mail_form.uid.value == "") {
alert("Merci de rentrer l'identifiant numérique du membre à déconnecter")
return false
} } // Fin de la fonction

</script>
</head>

<body>
<u><a href="./bannis.php">Déconnecter un autre membre</a></u>&nbsp;&nbsp;&nbsp;<u><a href="../index.php">Retour sur le site</a></u><br /><br />
<form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()">
<?php
if ($message_remerciement) {
echo(
"<font face=Verdana size=2>");
echo(
stripslashes($message_remerciement));
include 
XOOPS_ROOT_PATH.'/footer.php';
echo(
"</p></body></html>");
exit();
}
?>

<table border="0" align="left">
<tr>
      <td>
        <font face="Verdana" size="2">Identifiant numérique </font><input name="uid" type="text">
        <input name="titre_uid" type="hidden" value="Identifiant">
        <input type="reset" name="Reset" value="Vider la cellule">          
        <input type="submit" name="envoi" value="Envoyer">
      </td>
</tr>
</table>
</form>
<?php
include XOOPS_ROOT_PATH.'/footer.php';
?>
</body>
</html>

Attacher un fichier:



png  2008-12-05_114238.png (4.49 KB)
5661_493907159729b.png 801X155 px

png  2008-12-05_114254.png (3.43 KB)
5661_4939071ab53ad.png 524X115 px

Posté le : 05/12/2008 11:48
Partager Twitter Partagez cette article sur GG+
Re: Membre banni et droit d'accès
Supporter Xoops
Inscrit: 24/06/2006 05:39
Messages: 706
Bonjour,

Wow, ce script est vraiment génial. Est-ce qu'on pourrait espérer le voir ajouter dans une future version ? Selon moi ce serait vraiment utile. Par contre, je crois que malheureusement, il n'y a pas grand monde qui ont pu l'utiliser vu qu'il n'est pas évident à trouver, je suis tomber dessus par hasard.

Merci

Posté le : 04/01/2009 02:51

Hellboy
Partager Twitter Partagez cette article sur GG+
Re: Membre banni et droit d'accès
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
salut !
cool si ça te sert.
l'idéal serait même que xoops gère ça nativement, sans intervention de la part de l'administrateur.
je n'ai pas encore testé si c'était le cas avec la version 2.3.x

Posté le : 04/01/2009 12:45
Partager Twitter Partagez cette article sur GG+
Re: Membre banni et droit d'accès
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
sympa, tu as proposé sur le feature de sourceforge du projet ?

Posté le : 04/01/2009 14:17

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+
Re: Membre banni et droit d'accès
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Non, mais du coup, je vais le faire (je dois d'abord vérifier le comportement sur une 2.3.x, aussi bien, c'est déjà géré).

Posté le : 04/01/2009 20:08
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

63 Personne(s) en ligne (46 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 63 | Plus ...