Merge pull request #4411 from ynput/bugfix/OP-4773_private-ftrack-url-is-NOT-ftrackappcom

Ftrack: Don't force ftrackapp endpoint
This commit is contained in:
Jakub Trllo 2023-02-02 15:24:27 +01:00 committed by GitHub
commit 3eff2fe3cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 15 deletions

View file

@ -64,6 +64,16 @@ class FtrackModule(
self._timers_manager_module = None
def get_ftrack_url(self):
"""Resolved ftrack url.
Resolving is trying to fill missing information in url and tried to
connect to the server.
Returns:
Union[str, None]: Final variant of url or None if url could not be
reached.
"""
if self._ftrack_url is _URL_NOT_SET:
self._ftrack_url = resolve_ftrack_url(
self._settings_ftrack_url,
@ -73,8 +83,19 @@ class FtrackModule(
ftrack_url = property(get_ftrack_url)
@property
def settings_ftrack_url(self):
"""Ftrack url from settings in a format as it is.
Returns:
str: Ftrack url from settings.
"""
return self._settings_ftrack_url
def get_global_environments(self):
"""Ftrack's global environments."""
return {
"FTRACK_SERVER": self.ftrack_url
}
@ -510,7 +531,10 @@ def resolve_ftrack_url(url, logger=None):
url = "https://" + url
ftrack_url = None
if not url.endswith("ftrackapp.com"):
if url and _check_ftrack_url(url):
ftrack_url = url
if not ftrack_url and not url.endswith("ftrackapp.com"):
ftrackapp_url = url + ".ftrackapp.com"
if _check_ftrack_url(ftrackapp_url):
ftrack_url = ftrackapp_url

View file

@ -139,8 +139,7 @@ class CredentialsDialog(QtWidgets.QDialog):
self.fill_ftrack_url()
def fill_ftrack_url(self):
url = os.getenv("FTRACK_SERVER")
checked_url = self.check_url(url)
checked_url = self.check_url()
if checked_url == self.ftsite_input.text():
return
@ -154,7 +153,7 @@ class CredentialsDialog(QtWidgets.QDialog):
self.api_input.setEnabled(enabled)
self.user_input.setEnabled(enabled)
if not url:
if not checked_url:
self.btn_advanced.hide()
self.btn_simple.hide()
self.btn_ftrack_login.hide()
@ -254,7 +253,7 @@ class CredentialsDialog(QtWidgets.QDialog):
)
def _on_ftrack_login_clicked(self):
url = self.check_url(self.ftsite_input.text())
url = self.check_url()
if not url:
return
@ -302,21 +301,21 @@ class CredentialsDialog(QtWidgets.QDialog):
if is_logged is not None:
self.set_is_logged(is_logged)
def check_url(self, url):
if url is not None:
url = url.strip("/ ")
if not url:
def check_url(self):
settings_url = self._module.settings_ftrack_url
url = self._module.ftrack_url
if not settings_url:
self.set_error(
"Ftrack URL is not defined in settings!"
)
return
if "http" not in url:
if url.endswith("ftrackapp.com"):
url = "https://" + url
else:
url = "https://{}.ftrackapp.com".format(url)
if url is None:
self.set_error(
"Specified URL does not lead to a valid Ftrack server."
)
return
try:
result = requests.get(
url,