diff --git a/core/trunk/core/class/resources_controler.php b/core/trunk/core/class/resources_controler.php
index 99332c8d93ebcb124a1d410e59bc18a1b618d5fe..9e78c5717918ef75c9581467eea32a0b7c8f77bf 100755
--- a/core/trunk/core/class/resources_controler.php
+++ b/core/trunk/core/class/resources_controler.php
@@ -291,7 +291,7 @@ class resources_controler
                 $mail = array();
                 $theString = str_replace(">", "", $data[$i]['value']);
                 $mail = explode("<", $theString);
-                $queryUser = "select user_id from users where mail = "
+                $queryUser = "SELECT user_id FROM users WHERE mail = "
                     . "'" . $dbQuery->protect_string_db($mail[count($mail) -1]) . "' and status = 'OK'";
                 $dbQuery->query($queryUser);
                 $userIdFound = $dbQuery->fetch_object();
@@ -299,7 +299,7 @@ class resources_controler
                     $toAddressFound = true;
                     $destUser = $userIdFound->user_id;
 
-	                $queryUserEntity = "select entity_id from users_entities where primary_entity = 'Y' and user_id = '".$destUser."'";
+	                $queryUserEntity = "SELECT entity_id FROM users_entities WHERE primary_entity = 'Y' and user_id = '".$destUser."'";
 	                $dbQuery->query($queryUserEntity);
 	                $userEntityId = $dbQuery->fetch_object();
 	                if (!empty($userEntityId->entity_id)) {
diff --git a/core/trunk/core/class/users_controler.php b/core/trunk/core/class/users_controler.php
index 4883a499c26d126e967a3561d03cb58ec1ac9309..0e102437ae26c6b6275586941b1d19af0d033a2a 100644
--- a/core/trunk/core/class/users_controler.php
+++ b/core/trunk/core/class/users_controler.php
@@ -878,7 +878,7 @@ class users_controler extends ObjectControler implements ObjectControlerIF
     * Check if the user exist in the database given his mail
     *
     * @param  $userMail string user mail
-    * @return bool true if user exists, false otherwise
+    * @return Array or null
     */
     public function checkUserMail($userMail)
     {
@@ -886,18 +886,74 @@ class users_controler extends ObjectControler implements ObjectControlerIF
         self::$db->connect();
         $func = new functions();
 
-        $queryUser = "select user_id from users where mail = "
-            . "'" . $func->protect_string_db($userMail) . "'";
+        $queryUser = "SELECT user_id FROM users WHERE mail = "
+            . "'" . $func->protect_string_db($userMail) . "' and status = 'OK'";
         self::$db->query($queryUser);
         $userIdFound = self::$db->fetch_object();
+        $UserEntities = array();
+
         if (!empty($userIdFound->user_id)) {
             $isUser = true;
+            $UserEntities = $this->getEntities($userIdFound->user_id);
         } else {
             $isUser = false;
         }
 
         self::$db->disconnect();
-        return $isUser;
+        
+        $return = array();
+        array_push(
+            $return, 
+            array(
+                'isUser' => $isUser,
+                'userEntities' => $UserEntities
+            )
+        );
+
+        return $return;
+    }
+
+    /**
+    * Returns in an array all the entities associated with a user (user_id,
+    * entity_id, primary and role)
+    *
+    * @param  $userId string  User identifier
+    * @return Array or null
+    */
+    public function getEntities($userId)
+    {
+        $entities = array();
+        if (empty($userId)) {
+            return null;
+        }
+
+        self::$db = new dbquery();
+        self::$db->connect();
+        $func = new functions();
+        $query = "SELECT ue.entity_id, ue.user_role, ue.primary_entity 
+                    FROM users_entities ue, entities e 
+                    WHERE ue.user_id = '" . $func->protect_string_db($userId) . "' and e.enabled = 'Y' and e.entity_id = ue.entity_id
+                    ORDER BY primary_entity desc";
+                    // set primary entity to the first row
+        try{
+            self::$db->query($query);
+        } catch (Exception $e){
+            echo _NO_USER_WITH_ID.' '.$userId.' // ';
+        }
+
+        while ($res = self::$db->fetch_object()) {
+            array_push(
+                $entities, 
+                array(
+                    'USER_ID' => $userId,
+                    'ENTITY_ID' => $res->entity_id,
+                    'PRIMARY' => $res->primary_entity,
+                    'ROLE' => $res->user_role,
+                )
+            );
+        }
+        // self::$db->disconnect();
+        return $entities;
     }
 
 }
diff --git a/core/trunk/core/class/ws.php b/core/trunk/core/class/ws.php
index a2cb989a8d541c28f2a2a86956ad3e88663da559..2919a554b68c821643d24519193602a435a0d3b2 100755
--- a/core/trunk/core/class/ws.php
+++ b/core/trunk/core/class/ws.php
@@ -177,9 +177,27 @@ $SOAP_dispatch_map['userGet'] = array(
                                         'out' => array('out' => '{urn:MySoapServer}users'),
                                         'method' => "core#users::getWs"
                                     );
+
+$SOAP_typedef['returnArrayUser'] = array(   'userEntities'=>'{urn:MySoapServer}arrayOfEntities',
+                                            'isUser'=>'boolean',
+                                    );
+
+$SOAP_typedef['arrayOfEntities'] = array(
+    array(
+        'arrayOfEntitiesContent' => '{urn:MySoapServer}arrayOfEntitiesContent'
+    )
+);
+
+$SOAP_typedef['arrayOfEntitiesContent'] = array(
+    'USER_ID' => 'string',
+    'ENTITY_ID' => 'string',
+    'PRIMARY' => 'string',
+    'ROLE' => 'string',
+);
+
 $SOAP_dispatch_map['checkUserMail'] = array(
                                         'in'  => array('userMail' => 'string'),
-                                        'out' => array('out' => 'boolean'),
+                                        'out' => array('out' => '{urn:MySoapServer}returnArrayUser'),
                                         'method' => "core#users::checkUserMail"
                                         );