mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Use OpenPypeSecureRegistry for authentication
This commit is contained in:
parent
e8831947e6
commit
cde925c09b
3 changed files with 33 additions and 24 deletions
|
|
@ -6,4 +6,4 @@ be found by OpenPype discovery.
|
|||
|
||||
from .kitsu_module import KitsuModule
|
||||
|
||||
__all__ = ("KitsuModule", )
|
||||
__all__ = ("KitsuModule",)
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ from pymongo import DeleteOne, UpdateOne
|
|||
|
||||
from avalon.api import AvalonMongoDB
|
||||
from openpype.api import get_project_settings
|
||||
from openpype.lib.local_settings import OpenPypeSecureRegistry
|
||||
from openpype.modules import OpenPypeModule, ModulesManager
|
||||
from openpype.settings.lib import get_local_settings
|
||||
from openpype_interfaces import IPluginPaths, ITrayAction
|
||||
|
|
@ -28,7 +29,9 @@ class KitsuModule(OpenPypeModule, IPluginPaths, ITrayAction):
|
|||
def initialize(self, settings):
|
||||
"""Initialization of module."""
|
||||
module_settings = settings[self.name]
|
||||
local_kitsu_settings = get_local_settings().get("kitsu", {})
|
||||
|
||||
# Get user registry
|
||||
user_registry = OpenPypeSecureRegistry("kitsu_user")
|
||||
|
||||
# Enabled by settings
|
||||
self.enabled = module_settings.get("enabled", False)
|
||||
|
|
@ -49,8 +52,8 @@ class KitsuModule(OpenPypeModule, IPluginPaths, ITrayAction):
|
|||
self.server_url = kitsu_url
|
||||
|
||||
# Set credentials
|
||||
self.kitsu_login = local_kitsu_settings["login"]
|
||||
self.kitsu_password = local_kitsu_settings["password"]
|
||||
self.kitsu_login = user_registry.get_item("login", None)
|
||||
self.kitsu_password = user_registry.get_item("password", None)
|
||||
|
||||
# Prepare variables that can be used or set afterwards
|
||||
self._connected_modules = None
|
||||
|
|
@ -359,7 +362,13 @@ def sync_openpype(listen: bool):
|
|||
gazu.client.set_host(os.environ["KITSU_SERVER"])
|
||||
|
||||
# Authenticate
|
||||
gazu.log_in(os.environ["KITSU_LOGIN"], os.environ["KITSU_PWD"])
|
||||
kitsu_login = os.environ.get("KITSU_LOGIN")
|
||||
kitsu_pwd = os.environ.get("KITSU_PWD")
|
||||
if not kitsu_login or not kitsu_pwd: # Sentinel to log-in
|
||||
log_in_dialog()
|
||||
return
|
||||
|
||||
gazu.log_in(kitsu_login, kitsu_pwd)
|
||||
|
||||
# Iterate projects
|
||||
dbcon = AvalonMongoDB()
|
||||
|
|
@ -462,6 +471,11 @@ def listen():
|
|||
|
||||
@cli_main.command()
|
||||
def sign_in():
|
||||
"""Sign-in command."""
|
||||
log_in_dialog()
|
||||
|
||||
|
||||
def log_in_dialog():
|
||||
"""Show credentials dialog."""
|
||||
from openpype.tools.utils.lib import qt_app_context
|
||||
|
||||
|
|
|
|||
|
|
@ -4,11 +4,10 @@ import gazu
|
|||
from Qt import QtWidgets, QtCore, QtGui
|
||||
|
||||
from openpype import style
|
||||
from openpype.lib.local_settings import OpenPypeSecureRegistry
|
||||
from openpype.resources import get_resource
|
||||
from openpype.settings.lib import (
|
||||
get_local_settings,
|
||||
get_system_settings,
|
||||
save_local_settings,
|
||||
)
|
||||
|
||||
from openpype.widgets.password_dialog import PressHoverButton
|
||||
|
|
@ -26,8 +25,11 @@ class PasswordDialog(QtWidgets.QDialog):
|
|||
self.resize(300, 120)
|
||||
|
||||
system_settings = get_system_settings()
|
||||
kitsu_settings = get_local_settings().get("kitsu", {})
|
||||
remembered = kitsu_settings.get("remember")
|
||||
user_registry = OpenPypeSecureRegistry("kitsu_user")
|
||||
remembered = bool(
|
||||
user_registry.get_item("login", None)
|
||||
or user_registry.get_item("password", None)
|
||||
)
|
||||
|
||||
self._final_result = None
|
||||
self._connectable = bool(
|
||||
|
|
@ -47,7 +49,7 @@ class PasswordDialog(QtWidgets.QDialog):
|
|||
|
||||
login_input = QtWidgets.QLineEdit(
|
||||
login_widget,
|
||||
text=kitsu_settings.get("login") if remembered else None,
|
||||
text=user_registry.get_item("login") if remembered else None,
|
||||
)
|
||||
login_input.setPlaceholderText("Your Kitsu account login...")
|
||||
|
||||
|
|
@ -63,7 +65,7 @@ class PasswordDialog(QtWidgets.QDialog):
|
|||
|
||||
password_input = QtWidgets.QLineEdit(
|
||||
password_widget,
|
||||
text=kitsu_settings.get("password") if remembered else None,
|
||||
text=user_registry.get_item("password") if remembered else None,
|
||||
)
|
||||
password_input.setPlaceholderText("Your password...")
|
||||
password_input.setEchoMode(QtWidgets.QLineEdit.Password)
|
||||
|
|
@ -161,30 +163,23 @@ class PasswordDialog(QtWidgets.QDialog):
|
|||
os.environ["KITSU_LOGIN"] = login_value
|
||||
os.environ["KITSU_PWD"] = pwd_value
|
||||
|
||||
# Get settings
|
||||
local_settings = get_local_settings()
|
||||
local_settings.setdefault("kitsu", {})
|
||||
# Get user registry
|
||||
user_registry = OpenPypeSecureRegistry("kitsu_user")
|
||||
|
||||
# Remember password cases
|
||||
if remember:
|
||||
# Set local settings
|
||||
local_settings["kitsu"]["login"] = login_value
|
||||
local_settings["kitsu"]["password"] = pwd_value
|
||||
user_registry.set_item("login", login_value)
|
||||
user_registry.set_item("password", pwd_value)
|
||||
else:
|
||||
# Clear local settings
|
||||
local_settings["kitsu"]["login"] = None
|
||||
local_settings["kitsu"]["password"] = None
|
||||
user_registry.delete_item("login")
|
||||
user_registry.delete_item("password")
|
||||
|
||||
# Clear input fields
|
||||
self.login_input.clear()
|
||||
self.password_input.clear()
|
||||
|
||||
# Keep 'remember' parameter
|
||||
local_settings["kitsu"]["remember"] = remember
|
||||
|
||||
# Save settings
|
||||
save_local_settings(local_settings)
|
||||
|
||||
self._final_result = True
|
||||
self.close()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue