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 {