dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-dev] Ajout : Droits sur les commerciaux


From: Laurent Destailleur (Eldy)
Subject: Re: [Dolibarr-dev] Ajout : Droits sur les commerciaux
Date: Fri, 26 Jan 2007 19:52:00 +0100
User-agent: Thunderbird 1.5.0.9 (Windows/20061207)

Franky Van Liedekerke a écrit :
On Fri, 26 Jan 2007 16:59:41 +0100 (CET)
Régis Houssin <address@hidden> 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
address@hidden
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev



--
Laurent Destailleur.
---------------------------------------------------------------
EMail: address@hidden
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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]