'disconnect' from serverless domain when transitioning from a serverless-domain to a DNS name (rather than a place name)

This commit is contained in:
Seth Alves 2018-03-20 10:53:17 -07:00
parent f61504b814
commit bd10cd6fa9
2 changed files with 16 additions and 6 deletions

View file

@ -3118,6 +3118,9 @@ bool Application::isServerlessMode() const {
void Application::setIsServerlessDomain(bool serverlessDomain) {
auto tree = getEntities()->getTree();
if (tree->isServerlessMode() && !serverlessDomain) {
disconnectFromDomain();
}
if (tree) {
tree->setIsServerlessMode(serverlessDomain);
}
@ -3129,12 +3132,7 @@ void Application::loadServerlessDomain(QUrl domainURL) {
return;
}
auto nodeList = DependencyManager::get<NodeList>();
clearDomainOctreeDetails();
getMyAvatar()->setSessionUUID(QUuid()); // clear the sessionID
NodePermissions permissions; // deny all permissions
permissions.setAll(false);
nodeList->setPermissions(permissions);
disconnectFromDomain();
if (domainURL.isEmpty()) {
return;
@ -3142,9 +3140,11 @@ void Application::loadServerlessDomain(QUrl domainURL) {
QUuid serverlessSessionID = QUuid::createUuid();
getMyAvatar()->setSessionUUID(serverlessSessionID);
auto nodeList = DependencyManager::get<NodeList>();
nodeList->setSessionUUID(serverlessSessionID);
// there is no domain-server to tell us our permissions, so enable all
NodePermissions permissions;
permissions.setAll(true);
nodeList->setPermissions(permissions);
@ -3164,6 +3164,15 @@ void Application::loadServerlessDomain(QUrl domainURL) {
_fullSceneReceivedCounter++;
}
void Application::disconnectFromDomain() {
auto nodeList = DependencyManager::get<NodeList>();
clearDomainOctreeDetails();
getMyAvatar()->setSessionUUID(QUuid()); // clear the sessionID
NodePermissions permissions; // deny all permissions
permissions.setAll(false);
nodeList->setPermissions(permissions);
}
bool Application::importImage(const QString& urlString) {
qCDebug(interfaceapp) << "An image file has been dropped in";
QString filepath(urlString);

View file

@ -392,6 +392,7 @@ public slots:
void setIsServerlessDomain(bool serverlessDomain);
void loadServerlessDomain(QUrl domainURL);
void disconnectFromDomain();
Q_INVOKABLE bool askBeforeSetAvatarUrl(const QString& avatarUrl) { return askToSetAvatarUrl(avatarUrl); }