Example #1
0
 public function login($user = null, $pwd = null, $sn = null, $description = null)
 {
     /*
      * load user, pass and serial number
      */
     $this->loadSettings();
     $username = $this->username;
     $password = $this->password;
     $serial_number = $this->serial_number;
     /*
      * if $user, $pwd, $sn means that this login its to register an Appliance
      */
     if ($user) {
         $username = $user;
     }
     if ($pwd) {
         $password = $pwd;
     }
     if ($sn) {
         $serial_number = $sn;
     }
     $url = $this->site_url . "/login";
     /*
      * send authentication to mastersite
      */
     $curl_req = new cURL($url);
     $send_auth_params = "username={$username}&password={$password}";
     if ($serial_number) {
         $send_auth_params .= "&serial_number={$serial_number}";
     }
     if ($description) {
         $send_auth_params .= "&description={$description}";
     }
     $curl_req->post($send_auth_params);
     $curl_req->cookies(self::CONF_SITE_NAME);
     $curl_req->exec();
     $curl_req->close();
     $status = $curl_req->get_status();
     if ($status != 200) {
         if ($status) {
             $raw_response = $curl_req->get_response();
             $response_data = json_decode($raw_response, true);
             $data = array('success' => false, 'agent' => 'MASTERSITE', 'action' => 'login', 'info' => 'Cannot authenticate!', 'error' => 'Cannot authenticate!');
             if ($status == 400) {
                 $data['info'] = $response_data['error'];
             }
         } else {
             $error = $curl_req->get_error();
             $data = array('success' => false, 'agent' => 'MASTERSITE', 'action' => 'login', 'info' => 'An error occurred! ' . $error, 'error' => $error);
         }
         return $data;
     }
     /*
      * ok...
      */
     $raw_response = $curl_req->get_response();
     $response_data = json_decode($raw_response, true);
     $response = $response_data['response'];
     $serial = $response['serial_number'];
     /*
      *
      * save SETTINGS
      * update user, pass and serial
      *
      */
     if ($serial) {
         $this->saveSettings($serial, $username, $password, $description);
     }
     $data = array('success' => true, 'serial_number' => $serial);
     return $data;
 }