From 6c62b64b7ca8bad8c9d250449a963fc98695c615 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 29 Aug 2012 10:21:25 +0200
Subject: [PATCH] Fix: Test on ref and ref_ext into webservice

---
 htdocs/user/class/user.class.php   | 2 ++
 htdocs/webservices/server_user.php | 5 ++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php
index b5337425376..9dc387dc8b6 100644
--- a/htdocs/user/class/user.class.php
+++ b/htdocs/user/class/user.class.php
@@ -41,6 +41,8 @@ class User extends CommonObject
 	protected $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
 
 	var $id=0;
+	var $ref;
+	var $ref_ext;
 	var $ldap_sid;
 	var $search_sid;
 	var $nom;		// TODO deprecated
diff --git a/htdocs/webservices/server_user.php b/htdocs/webservices/server_user.php
index 08f720b7921..55b991fb93f 100644
--- a/htdocs/webservices/server_user.php
+++ b/htdocs/webservices/server_user.php
@@ -178,7 +178,10 @@ function getUser($authentication,$id,$ref='',$ref_ext='')
     {
         $fuser->getrights();
 
-        if ($fuser->rights->user->user->lire || ($fuser->rights->user->self->creer && $fuser->id = $id))
+        if ($fuser->rights->user->user->lire
+        	|| ($fuser->rights->user->self->creer && $id && $id=$fuser->id)
+        	|| ($fuser->rights->user->self->creer && $ref && $ref=$fuser->login)
+        	|| ($fuser->rights->user->self->creer && $ref_ext && $ref_ext=$fuser->ref_ext))
         {
             $user=new User($db);
             $result=$user->fetch($id,$ref,$ref_ext);
-- 
GitLab