Example #1
0
 public static function getServerByUri($uri, $userId = -1)
 {
     $servers = BIMsie::getServers(false, $userId);
     $foundServer = false;
     foreach ($servers as $server) {
         $oldServer = $server;
         if (BIMBCFManagement::removeProtocol($server['uri']) == BIMBCFManagement::removeProtocol($uri)) {
             $foundServer = $server;
             if ($foundServer['remember'] == 0) {
                 if (isset($_POST['username']) && isset($_POST['password'])) {
                     $foundServer['username'] = $_POST['username'];
                     $foundServer['password'] = $_POST['password'];
                 }
                 if (isset($_POST['remember']) && $_POST['remember'] != '') {
                     $foundServer['remember'] = 1;
                 }
             }
             if ($foundServer['remember'] == 0 || !isset($foundServer['token']) || $foundServer['tokenValid'] < time()) {
                 $token = BIMsie::publicRequest($foundServer['uri'], 'Bimsie1AuthInterface', 'login', array('username' => isset($foundServer['username']) ? $foundServer['username'] : '', 'password' => isset($foundServer['password']) ? $foundServer['password'] : ''));
                 if (isset($token) && isset($token->response) && isset($token->response->result) && BIMsie::getErrorMessage($token) === false) {
                     $token = $token->response->result;
                     $foundServer['token'] = $token;
                     $foundServer['tokenValid'] = time() + BIMsie::$tokenTimeout;
                     if ($foundServer['remember'] == 1) {
                         update_user_meta($userId == -1 ? get_current_user_id() : $userId, 'bimsie-servers', $foundServer, $oldServer);
                     }
                 }
             }
             break;
         }
     }
     return $foundServer;
 }
         }
     }
 }
 // New server added
 if ($serverId == -1 && isset($_POST['serverURI']) && $_POST['serverURI'] != '' && isset($_POST['username']) && isset($_POST['password'])) {
     $uri = $_POST['serverURI'];
     $username = $_POST['username'];
     $password = $_POST['password'];
     $remember = isset($_POST['remember']) && $_POST['remember'] == 'true' ? 1 : 0;
     Bimsie::updateServer($uri, $username, $password, $remember);
 }
 if ($serverId != -1) {
     $response['serverId'] = $serverId;
     // No token known or the token is expired
     if ($token === false) {
         $token = BIMsie::publicRequest($uri, 'Bimsie1AuthInterface', 'login', array('username' => $username, 'password' => $password));
         if (isset($token) && isset($token->response) && isset($token->response->result) && BIMsie::getErrorMessage($token) === false) {
             $token = $token->response->result;
             $servers = BIMsie::getServers(false);
             foreach ($servers as $server) {
                 if ($server['uri'] == $uri) {
                     $oldServer = $server;
                     $server['token'] = $token;
                     $server['tokenValid'] = time() + BIMsie::$tokenTimeout;
                     update_user_meta(get_current_user_id(), 'BIMsie-servers', $server, $oldServer);
                     break;
                 }
             }
         } elseif (isset($token)) {
             $response['error'] = BIMsie::getErrorMessage($token);
         } else {