Menu

#1 Teste récursivement les droits sur les rubriques

open
nobody
None
5
2005-01-17
2005-01-17
No

La fonction _access teste si l'utilisateur a acces ŕ la
rubrique, mais en cas d'erreur, il ne teste pas s'il a
acces ŕ la rubrique parent.

Le patch suivant corrige le problčme:

/**
* Check if an user have access to a rubrique
* or have access to a parent rubrique
*
* @var int $id_user ID of an user
* @var int $id_rubrique ID of a rubrique
* @return int If successfull 1 else 0
* @access privat
*/

function _access($id_user, $id_rubrique)
{
if ($this->_accessDirect ($id_user, $id_rubrique))
return 1;
$sql = " SELECT id_parent FROM spip_rubriques
WHERE id_rubrique='$id_rubrique';";
echo "$sql";
$this->_xp->query($sql, '_accessloop');

if($this->_xp->numRows('_accessloop') < 1)
die ("ERROR missing rubrique $id_rubrique");
$result = $this->_xp->fetchRow('DB_GETMODE_ASSOC',
'_accessloop');

if ($result['id_parent']==0)
return 0; // Top folder, nothing more to test
return ($this->_access ($id_user,
$result['id_parent']));
}

Il faut renommer la methode _access en _accessDirect

Voila,

Xavier

Discussion

  • Xavier DUTOIT

    Xavier DUTOIT - 2005-01-17
    • summary: Teste récursivement si l'utilisateur est connecté --> Teste récursivement les droits sur les rubriques
     
  • Xavier DUTOIT

    Xavier DUTOIT - 2005-01-17

    Logged In: YES
    user_id=916415

    Evidemment, il faut virer echo "$sql"; Oops.

     

Log in to post a comment.