Télécharger FAQ
 

Templeet pas à pas

XVI. L'écriture de nouveaux modules d'authentification

Le système d'authentification de Templeet est évolutif et permet le support de différentes méthodes d'authentification. Pour celà il est nécessaire d'écrire un module qui soit conforme à l'interface d'authentification de Templeet. Ce fichier doit se trouver dans le répertoire templeet/modules/auth et se nommer auth_XXX.php où XXX représente le type d'authentification.

Les informations liées à un utilisateur

Les fonctions

L'interface d'authentification comprend quinze fonctions qui doivent toutes exister dans un module d'authentification. Ces fonctions sont également nommées en fonction du type d'authentification.

auth_XXX_checkauth($user,$uid,$pass)

La fonction auth_XXX_checkauth permet de vérifier le mot de passe d'un utilisateur et/ou de positionner toutes les variables liées à l'utilisateur. La vérification se fait sur l'uid. Si celui-ci est négatif l'authentification se fait alors sur le nom de l'utilisateur. Si le mot de passe est un entier, seul le positionnement des variables utilisateur est fait. Ce cas de figure se produit dans l'édition des privilèges.


Function auth_XXX_checkauth($user,$uid,$pass)
{
  global $auth_admin,$auth_user_info,$auth_privateinfo;

  if ($uid<0)
    {
      $uid= trouver l'uid correspondant à $user     
    }
    
  trouver les informations correspondant à l'utilisateur
   
  $readpinfo=0; 
  if (!is_int($pass))
    {
      if (validité de l'utilisateur<=0)
	return -2;
      if (md5("$uid:$pass")!=md5 du mot de passe stocké || 
	   $uid!=uid des informations utilisateur lues)
	return -10;
      $auth_admin=($uid==0 || l'utilisateur fait partie du groupe ADMIN);
      $readpinfo=1;
    }
  else
    {
      if ($pass==0)
	{
	  $auth_admin=($uid==0 || isset($uservalue['priv']['ADMIN']));
	  $readpinfo=1;
	}

    }

  $auth_user_info['uid']=$uservalue['uid'];
  $auth_user_info['login']=$uservalue['login'];
  $auth_user_info['valid']=$uservalue['valid'];
  $auth_user_info['email']=$uservalue['email'];
  $auth_user_info['ipaddr']=$uservalue['ipaddr'];
  $auth_user_info['creation']=$uservalue['creation'];
  $auth_user_info['nickname']=$uservalue['nickname'];
 
  $allpriv=$uservalue['priv'];
  if ($readpinfo)
    {
      $auth_privateinfo=ffa_readfile("templeet/auth/info/$uid");
      if (!is_array($auth_privateinfo))
	$auth_privateinfo=array();
    }	 

  return $allpriv;
}


Function auth_XXX_checkauth($user,$uid,$pass)
	
Function auth_XXX_setpriv($setpriv)
 
Function auth_XXX_newuser($user,$password,$email,$validaccount,$validkey,$setpriv,$info)

Function auth_XXX_deluser($uid)

Function auth_XXX_passwd($uid,$oldpassword,$newpassword)

Function auth_XXX_loginnick($uid,$login,$nickname)

Function auth_XXX_validaccount($user,$key,$pass,$validvalue)

Function auth_XXX_setemail($uid,$email)
 
Function auth_XXX_setkeypass($user,$key,$emailcheck=1)

Function auth_XXX_listuser($array)

Function auth_XXX_listuserfld($array) 

Function auth_XXX_updateprivateinfo($uid,$var) 

Function auth_XXX_param() 

Function auth_XXX_checkparam() 

Function auth_XXX_hiddenparam() 

Les codes d'erreurs de ces fonctions sont disponibles dans le fichier authcode.txt qui se trouve dans la racine subversion de Templeet.