mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-04 01:53:10 +02:00
loading directly into a serverless domain works. user will have edit permissions
This commit is contained in:
parent
f44749387a
commit
d27cbac3f8
4 changed files with 43 additions and 26 deletions
|
@ -1048,7 +1048,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
|
|||
const DomainHandler& domainHandler = nodeList->getDomainHandler();
|
||||
|
||||
connect(&domainHandler, SIGNAL(hostnameChanged(const QString&)), SLOT(domainChanged(const QString&)));
|
||||
connect(&domainHandler, SIGNAL(serverlessDomainChanged(const QString&)), SLOT(domainChanged(const QString&)));
|
||||
connect(&domainHandler, SIGNAL(serverlessDomainChanged(QUrl)), SLOT(loadServerlessDomain(QUrl)));
|
||||
connect(&domainHandler, SIGNAL(resetting()), SLOT(resettingDomain()));
|
||||
connect(&domainHandler, SIGNAL(connectedToDomain(const QString&, const QUrl&)), SLOT(updateWindowTitle()));
|
||||
connect(&domainHandler, SIGNAL(disconnectedFromDomain()), SLOT(updateWindowTitle()));
|
||||
|
@ -1109,7 +1109,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
|
|||
connect(this, &QCoreApplication::aboutToQuit, addressManager.data(), &AddressManager::storeCurrentAddress);
|
||||
|
||||
connect(addressManager.data(), &AddressManager::setServersEnabled, this, &Application::setServersEnabled);
|
||||
connect(addressManager.data(), &AddressManager::loadServerlessDomain, this, &Application::loadServerlessDomain);
|
||||
|
||||
connect(this, &Application::activeDisplayPluginChanged, this, &Application::updateThreadPoolCount);
|
||||
connect(this, &Application::activeDisplayPluginChanged, this, [](){
|
||||
|
@ -2978,25 +2977,25 @@ void Application::handleSandboxStatus(QNetworkReply* reply) {
|
|||
|
||||
QString sentTo;
|
||||
|
||||
// If this is a first run we short-circuit the address passed in
|
||||
if (firstRun.get()) {
|
||||
showHelp();
|
||||
if (sandboxIsRunning) {
|
||||
qCDebug(interfaceapp) << "Home sandbox appears to be running, going to Home.";
|
||||
DependencyManager::get<AddressManager>()->goToLocalSandbox();
|
||||
sentTo = SENT_TO_SANDBOX;
|
||||
} else {
|
||||
qCDebug(interfaceapp) << "Home sandbox does not appear to be running, going to Entry.";
|
||||
DependencyManager::get<AddressManager>()->goToEntry();
|
||||
sentTo = SENT_TO_ENTRY;
|
||||
}
|
||||
firstRun.set(false);
|
||||
|
||||
// If this is a first run we short-circuit the address passed in
|
||||
if (firstRun.get()) {
|
||||
showHelp();
|
||||
if (sandboxIsRunning) {
|
||||
qCDebug(interfaceapp) << "Home sandbox appears to be running, going to Home.";
|
||||
DependencyManager::get<AddressManager>()->goToLocalSandbox();
|
||||
sentTo = SENT_TO_SANDBOX;
|
||||
} else {
|
||||
qCDebug(interfaceapp) << "Not first run... going to" << qPrintable(addressLookupString.isEmpty() ? QString("previous location") : addressLookupString);
|
||||
DependencyManager::get<AddressManager>()->loadSettings(addressLookupString);
|
||||
sentTo = SENT_TO_PREVIOUS_LOCATION;
|
||||
qCDebug(interfaceapp) << "Home sandbox does not appear to be running, going to Entry.";
|
||||
DependencyManager::get<AddressManager>()->goToEntry();
|
||||
sentTo = SENT_TO_ENTRY;
|
||||
}
|
||||
firstRun.set(false);
|
||||
|
||||
} else {
|
||||
qCDebug(interfaceapp) << "Not first run... going to" << qPrintable(addressLookupString.isEmpty() ? QString("previous location") : addressLookupString);
|
||||
DependencyManager::get<AddressManager>()->loadSettings(addressLookupString);
|
||||
sentTo = SENT_TO_PREVIOUS_LOCATION;
|
||||
}
|
||||
|
||||
UserActivityLogger::getInstance().logAction("startup_sent_to", {
|
||||
{ "sent_to", sentTo },
|
||||
|
@ -3053,11 +3052,23 @@ void Application::loadServerlessDomain(QUrl domainURL) {
|
|||
return;
|
||||
}
|
||||
|
||||
auto addressManager = DependencyManager::get<AddressManager>();
|
||||
addressManager->handleLookupString(DOMAIN_SPAWNING_POINT);
|
||||
qDebug() << "QQQQ loadServerlessDomain" << domainURL.toString();
|
||||
|
||||
clearDomainOctreeDetails();
|
||||
_entityClipboard->eraseAllOctreeElements();
|
||||
|
||||
if (domainURL.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto addressManager = DependencyManager::get<AddressManager>();
|
||||
addressManager->handleLookupString(DOMAIN_SPAWNING_POINT);
|
||||
|
||||
// there is no domain-server to tell us our permissions, so enable all
|
||||
NodePermissions permissions;
|
||||
permissions.setAll(true);
|
||||
DependencyManager::get<NodeList>()->setPermissions(permissions);
|
||||
|
||||
getEntities()->getTree()->setIsServerlessMode(true);
|
||||
getEntities()->getTree()->eraseAllOctreeElements();
|
||||
if (importEntities(domainURL.toString())) {
|
||||
|
@ -5774,6 +5785,7 @@ void Application::clearDomainAvatars() {
|
|||
}
|
||||
|
||||
void Application::domainChanged(const QString& domainHostname) {
|
||||
qDebug() << "QQQQ Application::domainChanged" << domainHostname;
|
||||
clearDomainOctreeDetails();
|
||||
getEntities()->getTree()->setIsServerlessMode(isServerlessMode());
|
||||
updateWindowTitle();
|
||||
|
|
|
@ -306,7 +306,6 @@ bool AddressManager::handleUrl(const QUrl& lookupUrl, LookupTrigger trigger) {
|
|||
emit setServersEnabled(false);
|
||||
setDomainInfo(domainUrl, QString(), 0, trigger);
|
||||
DependencyManager::get<NodeList>()->getDomainHandler().setIsConnected(true);
|
||||
emit loadServerlessDomain(domainUrl);
|
||||
emit lookupResultsFinished();
|
||||
return true;
|
||||
}
|
||||
|
@ -405,6 +404,8 @@ void AddressManager::goToAddressFromObject(const QVariantMap& dataObject, const
|
|||
QString domainIDString = domainObject[DOMAIN_ID_KEY].toString();
|
||||
QUuid domainID(domainIDString);
|
||||
|
||||
qDebug() << "QQQQ AddressManager::goToAddressFromObject";
|
||||
|
||||
if (domainObject.contains(DOMAIN_NETWORK_ADDRESS_KEY)) {
|
||||
QString domainHostname = domainObject[DOMAIN_NETWORK_ADDRESS_KEY].toString();
|
||||
|
||||
|
@ -756,7 +757,7 @@ bool AddressManager::setDomainInfo(const QUrl& serverlessDomainURL,
|
|||
_serverlessDomainURL = serverlessDomainURL;
|
||||
|
||||
if (!serverlessDomainURL.isEmpty()) {
|
||||
qCDebug(networking) << "Possible domain change required to serverless domain: " << serverlessDomainURL;
|
||||
qCDebug(networking) << "Possible domain change required to serverless domain: " << serverlessDomainURL.toString();
|
||||
} else {
|
||||
qCDebug(networking) << "Possible domain change required to connect to domain at" << hostname << "on" << port;
|
||||
}
|
||||
|
|
|
@ -156,6 +156,8 @@ void DomainHandler::setSocketAndID(const QUrl& serverlessDomainURL,
|
|||
|
||||
_pendingDomainID = domainID;
|
||||
|
||||
qDebug() << "QQQQ DomainHandler::setSocketAndID " << serverlessDomainURL << hostname << port;
|
||||
|
||||
if (serverlessDomainURL != _serverlessDomainURL || hostname != _hostname || _sockAddr.getPort() != port) {
|
||||
// re-set the domain info so that auth information is reloaded
|
||||
hardReset();
|
||||
|
@ -165,7 +167,8 @@ void DomainHandler::setSocketAndID(const QUrl& serverlessDomainURL,
|
|||
if (_serverlessDomainURL != QUrl()) {
|
||||
setIsConnected(true);
|
||||
}
|
||||
emit serverlessDomainChanged(_serverlessDomainURL.toString());
|
||||
qDebug() << "QQQQ serverlessDomainChanged";
|
||||
emit serverlessDomainChanged(_serverlessDomainURL);
|
||||
}
|
||||
|
||||
if (hostname != _hostname) {
|
||||
|
@ -184,6 +187,7 @@ void DomainHandler::setSocketAndID(const QUrl& serverlessDomainURL,
|
|||
|
||||
UserActivityLogger::getInstance().changedDomain(_hostname);
|
||||
}
|
||||
qDebug() << "QQQQ hostnameChanged";
|
||||
emit hostnameChanged(_hostname);
|
||||
}
|
||||
|
||||
|
@ -200,7 +204,7 @@ void DomainHandler::setIceServerHostnameAndID(const QString& iceServerHostname,
|
|||
|
||||
if (_serverlessDomainURL != QUrl()) {
|
||||
_serverlessDomainURL = QUrl();
|
||||
emit serverlessDomainChanged("");
|
||||
emit serverlessDomainChanged(QUrl());
|
||||
}
|
||||
|
||||
if (_iceServerSockAddr.getAddress().toString() != iceServerHostname || id != _pendingDomainID) {
|
||||
|
|
|
@ -157,7 +157,7 @@ private slots:
|
|||
|
||||
signals:
|
||||
void hostnameChanged(const QString& hostname);
|
||||
void serverlessDomainChanged(const QString& hostname);
|
||||
void serverlessDomainChanged(QUrl serverlessDomainURL);
|
||||
|
||||
// NOTE: the emission of completedSocketDiscovery does not mean a connection to DS is established
|
||||
// It means that, either from DNS lookup or ICE, we think we have a socket we can talk to DS on
|
||||
|
|
Loading…
Reference in a new issue