Browse Source

Fix issue with wSSessionGetDetailByUser() web service not receiving user_field name - refs BT#9092

Yannick Warnier 10 years ago
parent
commit
f951c79210
1 changed files with 5 additions and 4 deletions
  1. 5 4
      plugin/advanced_subscription/src/HookAdvancedSubscription.php

+ 5 - 4
plugin/advanced_subscription/src/HookAdvancedSubscription.php

@@ -139,8 +139,10 @@ class HookAdvancedSubscription extends HookObserver implements
                 'all',
                 '',
                 array(
-                    // user.user_id
+                    // user_field_values.value
                     'user_id' => array('name' => 'user_id', 'type' => 'xsd:int'),
+                    // user_field.user_id
+                    'user_field' => array('name' => 'user_field', 'type' => 'xsd:string'),
                     // session.id
                     'session_id' => array('name' => 'session_id', 'type' => 'xsd:int'),
                     // user.profile_completes
@@ -473,11 +475,10 @@ class HookAdvancedSubscription extends HookObserver implements
         $result = return_error(WS_ERROR_NOT_FOUND_RESULT);
         // Check params
         if (is_array($params) && !empty($params['session_id']) && !empty($params['user_id'])) {
-            $userId = (int) $params['user_id'];
+            $userId = UserManager::get_user_id_from_original_id($params['user_id'], $params['user_field']);
             $sessionId = (int) $params['session_id'];
             // Check if user exists
-            if (
-                UserManager::is_user_id_valid($userId) &&
+            if (UserManager::is_user_id_valid($userId) &&
                 SessionManager::isValidId($sessionId)
             ) {
                 // Check if student is already subscribed