Marius Burkard
2016-07-10 e1ceb050e19c7574bca146a8da7047ee4ff456b5
interface/lib/classes/remoting.inc.php
@@ -90,11 +90,8 @@
      }
      //* Delete old remoting sessions
      $sql = "DELETE FROM remote_session WHERE tstamp < UNIX_TIMSTAMP()";
      $sql = "DELETE FROM remote_session WHERE tstamp < UNIX_TIMESTAMP()";
      $app->db->query($sql);
      $username = $app->db->quote($username);
      $password = $app->db->quote($password);
      if($client_login == true) {
         $sql = "SELECT * FROM sys_user WHERE USERNAME = ?";
@@ -175,8 +172,6 @@
         return false;
      }
      $session_id = $app->db->quote($session_id);
      $sql = "DELETE FROM remote_session WHERE remote_session = ?";
      if($app->db->query($sql, $session_id) != false) {
         return true;
@@ -201,7 +196,7 @@
      $sql = $app->remoting_lib->getSQL($params, 'INSERT', 0);
      //* Check if no system user with that username exists
      $username = $app->db->quote($params["username"]);
      $username = $params["username"];
      $tmp = $app->db->queryOneRecord("SELECT count(userid) as number FROM sys_user WHERE username = ?", $username);
      if($tmp['number'] > 0) $app->remoting_lib->errorMessage .= "Duplicate username<br />";
@@ -236,7 +231,7 @@
      /* copied from the client_edit php */
      exec('ssh-keygen -t rsa -C '.$username.'-rsa-key-'.time().' -f /tmp/id_rsa -N ""');
      $app->db->query("UPDATE client SET created_at = UNIX_TIMSTAMP(), id_rsa = ?, ssh_rsa = ? WHERE client_id = ?", @file_get_contents('/tmp/id_rsa'), @file_get_contents('/tmp/id_rsa.pub'), $this->id);
      $app->db->query("UPDATE client SET created_at = UNIX_TIMESTAMP(), id_rsa = ?, ssh_rsa = ? WHERE client_id = ?", @file_get_contents('/tmp/id_rsa'), @file_get_contents('/tmp/id_rsa.pub'), $this->id);
      exec('rm -f /tmp/id_rsa /tmp/id_rsa.pub');
@@ -341,10 +336,19 @@
      
      //* get old record and merge with params, so only new values have to be set in $params
      $old_rec = $app->remoting_lib->getDataRecord($primary_id);
      foreach ($app->remoting_lib->formDef['fields'] as $fieldName => $fieldConf)
        {
            if ($fieldConf['formtype'] === 'PASSWORD' && empty($params[$fieldName])) {
                unset($old_rec[$fieldName]);
            }
        }
      $params = $app->functions->array_merge($old_rec,$params);
      //* Get the SQL query
      $sql = $app->remoting_lib->getSQL($params, 'UPDATE', $primary_id);
      // throw new SoapFault('debug', $sql);
      if($app->remoting_lib->errorMessage != '') {
         throw new SoapFault('data_processing_error', $app->remoting_lib->errorMessage);
@@ -471,9 +475,7 @@
         return false;
      }
      $session_id = $app->db->quote($session_id);
      $sql = "SELECT * FROM remote_session WHERE remote_session = ? AND tstamp >= UNIX_TIMSTAMP()";
      $sql = "SELECT * FROM remote_session WHERE remote_session = ? AND tstamp >= UNIX_TIMESTAMP()";
      $session = $app->db->queryOneRecord($sql, $session_id);
      if($session['remote_userid'] > 0) {
         return $session;