Franky Van Liedekerke a écrit :
On Fri, 26 Jan 2007 16:59:41 +0100 (CET)
Régis Houssin <[EMAIL PROTECTED]> wrote:

j'ai ajouté ceci en test sur /comm/propal.php afin de sécuriser
l'accès aux fiches propal envers les commerciaux qui sont restreint
au niveau visualisation des sociétés, est-ce que ca convient ? si oui
on le reporte sur les factures et autres :

// Protection restriction commercial
  if (!$user->rights->commercial->client->voir)
  {
    $sql = "SELECT sc.fk_soc";
    $sql .= " FROM ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    $sql .= " WHERE sc.fk_soc = ".$propal->socid." AND sc.fk_user =
".$user->id;
    if ( $db->query($sql) )
    {
      if ( $db->num_rows() == 0) accessforbidden();
    }
  }
  //fin de Protection restriction commercial
On y ait presque mais ce code empêche un utilisateur externe de voir ces propres propal.

J'ai donc apporté une modification et j'ai réessayé les tests dans les 4 combinaisons possibles et la règle suivante est bien respectée: Utilisateur interne socid=0 + Droits voir tous clients => Voit toute société Utilisateur interne socid=0 + Pas de droits voir tous clients => Ne voit que les sociétés où il est liée comme commercial Utilisateur externe socid=x + Droits voir tous clients => Ne voit que lui meme Utilisateur externe socid=x + Pas de droits voir tous clients => Ne voit que lui meme

Je te laisse regarder Régis et si ok, on l'applique aux autres entités. Par contre pour des raisons de lisibilité je remplacerais le code sql par une méthode sur l'objet user

if (! $user->isCommercialOf($propal->socid)) access_forbidden();

Cela simplifiera aussi la recopie du code dans les autres entités.

Je ne comprends pas vraiment la raison pour le sql extra: tu n'as pas
confiance dans les properties de l'utilisateur? Le check

$propal->socid <> $user->societe_id

me semble suffisant, mais peut-etre je comprends mal le droit
"$user->rights->commercial->client->voir"

Franky


_______________________________________________
Dolibarr-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev



--
Laurent Destailleur.
---------------------------------------------------------------
EMail: [EMAIL PROTECTED]
Web: http://www.destailleur.fr
IM: IRC=Eldy, Jabber=Eldy

AWStats (Author) : http://awstats.sourceforge.net
CVSChangeLogBuilder (Author) : http://cvschangelogb.sourceforge.net
AWBot (Author) : http://awbot.sourceforge.net
Dolibarr (Contributor) : http://www.dolibarr.org



_______________________________________________
Dolibarr-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev

Répondre à