Easy-Design.Net forum




Aide générale [Réglé] PhpFreeChat

saturnin Membre non connecté

Administrateur

Rang

Avatar

Administrateur

Inscrit le : 08/08/2009 à 22h19

Messages: 3963

Le 07/12/2010 à 08h58

Reprise du message précédent

non normalement le isadmin est pris en fonction du rang pbt.

Code PHP :
if( $User->Check_level(ADMIN_LEVEL) ) { // Administrateur
$params["debug"] = true ;
$params["isadmin"] = true ;
} //admin

cette partie sert justement a cela.

si tu m'expliquer plis précisément qui dois avoir acces a phpfreechat, je pourrais peut etre essayer de voir ce que l'on peut faire.


signaturesaturnin


Accroche toi au clavier, je retire le shell...
Site web    
Bloodric Membre non connecté

EDN Motivé(e)

Rang

Avatar

Inscrit le : 06/11/2010 à 10h33

Messages: 335

Le 07/12/2010 à 09h30
sur ce coup là j'avai passé le "isadmin" à False (comme indiqué dans leur doc) pensant que sa gardait le même fonctionnement et que la personne connecté était par conséquant "admin". :siffle

J'ai vu pour la définition des admins ou modérateur dans le php de phpfreechat et les quelques options qui vont avec.

Me reste plus qu'a trouver la partie pour limiter les accès, pas en ecriture mais directement en "accessibilité", ne pas pouvoir l'afficher du tout, c'est pourquoi je comparais ça aux droits donnés pour les pages, car dans le domaine du gaming, pégase pourra affirmer, on a des boulets qui viendraient squater le chat pour se plaindre et autre en permanence.
La solution réside dans un chat "Ultra" privé inaccéssible à ceux n'étant pas dans des groupes (du site) définis.

Une fois ça opérationnel tout sera ok coté technique, je n'aurai plus qu' a finir avec le design du site et vous montrer ça ...


   
saturnin Membre non connecté

Administrateur

Rang

Avatar

Administrateur

Inscrit le : 08/08/2009 à 22h19

Messages: 3963

Le 07/12/2010 à 09h41
pour cela il me faudrais le numero du groupe que tu souhaite autoriser.

pour conaitre le numero du groupe tu vas dans la gestion de ceux ci, c'est dans l'url.
par exemple sur csn, le groupe graphiste c'est le n°3 : /member-0.php?g=3

je regarderais les modifs a faire en php pour limité a ce groupe l'acces au chat. (miaou ... :p )
il me semble que la solution la plus sure pour limité l'acces.


signaturesaturnin


Accroche toi au clavier, je retire le shell...
Site web    
Bloodric Membre non connecté

EDN Motivé(e)

Rang

Avatar

Inscrit le : 06/11/2010 à 10h33

Messages: 335

Le 07/12/2010 à 09h42
ok je regarde ça dès que je rentre du boulot :siffle ....


   
saturnin Membre non connecté

Administrateur

Rang

Avatar

Administrateur

Inscrit le : 08/08/2009 à 22h19

Messages: 3963

Le 07/12/2010 à 10h29
une ébauche vite fait donnerais sa :

Code PHP :
<?php
//donées phpfreechat
  require_once "src/phpfreechat.class.php"; // chemin des sources du script
  $params["serverid"]      = md5(__FILE__); // controle md5
  $params["refresh_delay"] = 2000; // refresh pour l'affichage : 2000ms = 2s
  $params["language"]      = "fr_FR"; // code langages
  $params["title"] ="Discution en ligne"; // nom du chat (serveur)
  $params["channels"] = array("Accueil"); // nom du chat principal 
 
  ///////////////////////////////////////////////////////
 // valeur a modifier pour mettre le bon n° de groupe //
///////////////////////////////////////////////////////
 
$group_access = '2' ;
 
///////////////////////////////////////////////////////
// valeur a modifier pour mettre le bon n° de groupe //
///////////////////////////////////////////////////////
 
 
// donée pbt 
include_once('../kernel/begin.php');
if ($User->check_level(MEMBER_LEVEL)) //Membre Connecté.
{
$login = $User->get_attribute('login') ;
 
//////////
$result = $Sql->query_while("SELECT login, user_id, user_groups 
FROM " . PREFIX . "member
WHERE login = '".$login."'
ORDER BY user_id ", __LINE__, __FILE__);
while ($row = $Sql->fetch_assoc($result))
{
$user_groups = explode('|', $row['user_groups']);
if (in_array($group_access, $user_groups)) {
$allow_access= '1';
}
}
//////////
 
$params["nick"] = iconv("ISO-8859-1", "UTF-8", $login) ; 
 
if( $User->Check_level(ADMIN_LEVEL) ) { // Administrateur
$params["debug"] = true ;
$params["isadmin"] = true ;
// access admin !!!
$allow_access= '1';
 
} //admin
} //membre connecté
 
 
 $chat = new phpFreeChat( $params );
 
 $chat->printJavascript();
 $chat->printStyle();
 
define('TITLE', $params["title"]);
 
//Inclusion du header
include_once('../kernel/header.php');
if($allow_access== '1'){  
$chat->printChat(); 
}else{ $Errorh->handler('e_auth', E_USER_REDIRECT); } 
 
include_once('../kernel/footer.php');
?>


signaturesaturnin


Accroche toi au clavier, je retire le shell...
Site web    
Bloodric Membre non connecté

EDN Motivé(e)

Rang

Avatar

Inscrit le : 06/11/2010 à 10h33

Messages: 335

Le 07/12/2010 à 19h12
ça a l'air d'être bon.
Je te confirme dès que j'aurais fait plus de test avec des membres.
Rapidement :ok


   
saturnin Membre non connecté

Administrateur

Rang

Avatar

Administrateur

Inscrit le : 08/08/2009 à 22h19

Messages: 3963

Le 07/12/2010 à 19h16
tu as bien mis un groupe et modifier la valeur dans le fichier ?
j'ai mis un "passe partout" a l'admin.


signaturesaturnin


Accroche toi au clavier, je retire le shell...
Site web    
Bloodric Membre non connecté

EDN Motivé(e)

Rang

Avatar

Inscrit le : 06/11/2010 à 10h33

Messages: 335

Le 07/12/2010 à 19h54
pourquoi un passe partout ?

Code PHP :
// access admin !!!
$allow_access= '1';
 

tu parles de ça ? car l'admin se définit, de ce que j'ai lu, dans pfcglobalconfig.class.php.
Si c'est fais via ce que tu m'as mi, ça correspond au n° du membre concerné ?

on peut mettre plusieurs groupes ? Edité par Bloodric Le 07/12/2010 à 19h56


   
saturnin Membre non connecté

Administrateur

Rang

Avatar

Administrateur

Inscrit le : 08/08/2009 à 22h19

Messages: 3963

Le 07/12/2010 à 20h09
oui mais la c'est pour ne pas qu'il soit rediriger.
phpfreechat c'est une chose, pbt une autre :p


signaturesaturnin


Accroche toi au clavier, je retire le shell...
Site web    
Bloodric Membre non connecté

EDN Motivé(e)

Rang

Avatar

Inscrit le : 06/11/2010 à 10h33

Messages: 335

Le 07/12/2010 à 20h46
:oO qui veut dire ? que je dis des âneries surement ! mais j'ai pas tout compris du coup.


   
saturnin Membre non connecté

Administrateur

Rang

Avatar

Administrateur

Inscrit le : 08/08/2009 à 22h19

Messages: 3963

Le 07/12/2010 à 21h03
que la mise en variable que tu a cité plus haut permet a l'admin d'avoir acces au tchat, c'est pas une fonctionalité de phpfreechat, juste de la page que tu as :)

j'ai fais diférant controle sur les user de pbt, en fonction des resultat il y a acces au chat, ou pas.
cette citation, permet a l'amin l'acces.

je suis pas sur d'etre clair :)


signaturesaturnin


Accroche toi au clavier, je retire le shell...
Site web    
Bloodric Membre non connecté

EDN Motivé(e)

Rang

Avatar

Inscrit le : 06/11/2010 à 10h33

Messages: 335

Le 07/12/2010 à 22h26
si là c'est plus clair pour moi. Reste donc ma question de l'accès pour plusieurs groupe.


   
saturnin Membre non connecté

Administrateur

Rang

Avatar

Administrateur

Inscrit le : 08/08/2009 à 22h19

Messages: 3963

Le 07/12/2010 à 22h53
il suffit de dupliquer les lignes :

Code PHP :
if (in_array($group_access, $user_groups)) {
$allow_access= '1';
}
 

et de modifier dans la deuxieme pour le segond groupe. par exemple pour le groupe defini plus haut, plus un autre... le 8 par exemple :

Code PHP :
if (in_array($group_access, $user_groups)) {
$allow_access= '1';
}
 
if (in_array('8', $user_groups)) {
$allow_access= '1';
}
 


sa devrais passer, on pourrais aussi définir un array dans la 1ere variable, mais c'est moins simple a modifier si par la suite tu change de groupe ... penser a repasser en variable sans tableau tout sa ...
c'est plus simple, plus long, moins jolie esthétique, mais tout aussi fonctionnel, et sans pour au-temps avoir de faille.


signaturesaturnin


Accroche toi au clavier, je retire le shell...
Site web    
Bloodric Membre non connecté

EDN Motivé(e)

Rang

Avatar

Inscrit le : 06/11/2010 à 10h33

Messages: 335

Le 07/12/2010 à 23h51
Test ok pour le modèle simple $group_access = '2' , j'ai tester avec d'autres profils en les changeant de groupe et l'accès n'est autorisé qu' au groupe 2 (nickel) + Administrateur et ce peut importe le groupe.

Par contre pour l'histoire du tableau, c'est plus flou.

Je retest ce soir car j'ai du merdouillé. Je reveins vers toi dès que je suis sur de ne pas avoir fait n'importe quoi pour te dire si ça passe. Edité par Bloodric Le 08/12/2010 à 10h42


   
saturnin Membre non connecté

Administrateur

Rang

Avatar

Administrateur

Inscrit le : 08/08/2009 à 22h19

Messages: 3963

Le 08/12/2010 à 17h23
qul tableau ?¿ pour la variable, justement c'est pour ne pas l'utiliser.

les variable php peuvent etre organiser en tableau, elle peuvent contenir plus que de simple valeurs, et meme plusieurs, organiser en tableau ou pas.
mais sa n'a tien a voir avec un tableau html ou autre, c'est une architecture de donnée.



signaturesaturnin


Accroche toi au clavier, je retire le shell...
Site web    
Bloodric Membre non connecté

EDN Motivé(e)

Rang

Avatar

Inscrit le : 06/11/2010 à 10h33

Messages: 335

Le 08/12/2010 à 17h31
vivi ça j'avais compris, mais comme dans mes recherche in_array faisait référence à des valeurs appartenant à un tableau je n'étais plus sur du coup, l'apprentissage est pas simple :mouais


   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie