[Top][All Lists]
[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