예제 #1
0
 function CloudRequestGetList($method_parameters)
 {
     global $event;
     $parameter_array = explode(',', $method_parameters);
     $mode = $parameter_array[0];
     $username = $parameter_array[1];
     $password = $parameter_array[2];
     $clouduser_name = $parameter_array[3];
     // check all user input
     for ($i = 0; $i <= 3; $i++) {
         if (!$this->check_param($parameter_array[$i])) {
             $event->log("cloudsoap->CloudRequestGetList", $_SERVER['REQUEST_TIME'], 2, "cloud-soap-server.php", "Not allowing user-intput with special-characters : {$parameter_array[$i]}", "", "", 0, 0, 0);
             return;
         }
     }
     // check parameter count
     $parameter_count = count($parameter_array);
     if ($parameter_count != 4) {
         $event->log("cloudsoap->CloudRequestGetList", $_SERVER['REQUEST_TIME'], 2, "cloud-soap-server.php", "Wrong parameter count {$parameter_count} ! Exiting.", "", "", 0, 0, 0);
         return;
     }
     // check authentication
     if (!$this->check_user($mode, $username, $password)) {
         $event->log("cloudsoap->CloudRequestGetList", $_SERVER['REQUEST_TIME'], 2, "cloud-soap-server.php", "User authentication failed (mode {$mode})", "", "", 0, 0, 0);
         return;
     }
     $clouduser = new clouduser();
     // check that in user mode the username is the same as the cloud_username
     switch ($mode) {
         case 'user':
             if ($clouduser->is_name_free($clouduser_name)) {
                 $event->log("cloudsoap->CloudRequestGetList", $_SERVER['REQUEST_TIME'], 2, "cloud-soap-server.php", "Cloud User name {$clouduser_name} does not exists in the Cloud. Not adding the request !", "", "", 0, 0, 0);
                 return;
             }
             if (strcmp($username, $clouduser_name)) {
                 $event->log("cloudsoap->CloudRequestGetList", $_SERVER['REQUEST_TIME'], 2, "cloud-soap-server.php", "Cloud User {$username} is trying to gather the request list of Cloud User {$clouduser_name}  !", "", "", 0, 0, 0);
                 return;
             }
             break;
         case 'admin':
             if (!strlen($clouduser_name)) {
                 $event->log("cloudsoap->CloudRequestGetList", $_SERVER['REQUEST_TIME'], 5, "cloud-soap-server.php", "Providing list of all Cloud-requests", "", "", 0, 0, 0);
                 $cloudrequest_list = array();
                 $cloudrequest = new cloudrequest();
                 $cloudrequest_id_list = $cloudrequest->get_all_ids();
                 foreach ($cloudrequest_id_list as $cr_id_list) {
                     foreach ($cr_id_list as $cr_id) {
                         $cloudrequest_list[] = $cr_id;
                     }
                 }
                 return $cloudrequest_list;
             } else {
                 if ($clouduser->is_name_free($clouduser_name)) {
                     $event->log("cloudsoap->CloudRequestGetList", $_SERVER['REQUEST_TIME'], 2, "cloud-soap-server.php", "Cloud User name {$clouduser_name} does not exists in the Cloud. Not adding the request !", "", "", 0, 0, 0);
                     return;
                 }
             }
             break;
     }
     $cloudrequest_list = array();
     $clouduser->get_instance_by_name($clouduser_name);
     $cu_id = $clouduser->id;
     $event->log("cloudsoap->CloudRequestGetList", $_SERVER['REQUEST_TIME'], 5, "cloud-soap-server.php", "Providing list of Cloud-requests for Cloud User {$clouduser_name} ({$cu_id})", "", "", 0, 0, 0);
     $cloudrequest = new cloudrequest();
     $cloudrequest_id_list = $cloudrequest->get_all_active_ids_per_user($cu_id);
     foreach ($cloudrequest_id_list as $cr_id_list) {
         foreach ($cr_id_list as $cr_id) {
             $cloudrequest_list[] = $cr_id;
         }
     }
     return $cloudrequest_list;
 }