EmbyCrackedClient/web/settings/userpasswordcontroller.js
2025-06-25 11:46:04 +08:00

1 line
No EOL
7.9 KiB
JavaScript

import globalize from"./../modules/common/globalize.js";import loading from"./../modules/loading/loading.js";import focusManager from"./../modules/focusmanager.js";import formHelper from"./../modules/common/responsehelper.js";import"./../modules/emby-elements/emby-checkbox/emby-checkbox.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-button/paper-icon-button-light.js";import"./../modules/emby-elements/emby-select/emby-select.js";import"./../modules/emby-elements/emby-scroller/emby-scroller.js";import"./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js";function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function showConfirm(options){return Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)})}function showToast(options){return Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}function loadUser(page,params,apiClient,autoFocus){params=params.userId;apiClient.getUser(params,!1).then(function(user){apiClient.getCurrentUser().then(function(loggedInUser){var btnResetPassword=page.querySelector(".btnResetPassword");let showLocalAccessSection=!1;user.HasConfiguredPassword?(user.Policy.IsAdministrator||apiClient.isMinServerVersion("4.8.0.38")?btnResetPassword&&btnResetPassword.classList.add("hide"):btnResetPassword&&btnResetPassword.classList.remove("hide"),apiClient.isMinServerVersion("4.8.0.38")?page.querySelector(".fldCurrentPassword").classList.add("hide"):page.querySelector(".fldCurrentPassword").classList.remove("hide"),showLocalAccessSection=!apiClient.isMinServerVersion("4.8.0.40")):(btnResetPassword&&btnResetPassword.classList.add("hide"),page.querySelector(".fldCurrentPassword").classList.add("hide")),user.Policy.IsAdministrator&&apiClient.isMinServerVersion("4.8.0.38")?(page.querySelector(".txtNewPassword").setAttribute("required","required"),page.querySelector(".txtNewPasswordConfirm").setAttribute("required","required")):(page.querySelector(".txtNewPassword").removeAttribute("required"),page.querySelector(".txtNewPasswordConfirm").removeAttribute("required")),loggedInUser.Policy.IsAdministrator||user.Policy.EnableUserPreferenceAccess?(page.querySelector(".passwordSection").classList.remove("hide"),user.HasConfiguredPassword&&apiClient.isMinServerVersion("4.8.0.48")?page.querySelector(".profilePinForm").classList.remove("hide"):page.querySelector(".profilePinForm").classList.add("hide")):(page.querySelector(".passwordSection").classList.add("hide"),page.querySelector(".profilePinForm").classList.add("hide")),showLocalAccessSection&&(loggedInUser.Policy.IsAdministrator||user.Policy.EnableUserPreferenceAccess)?page.querySelector(".localAccessSection").classList.remove("hide"):page.querySelector(".localAccessSection").classList.add("hide"),page.querySelector(".txtInNetworkPassword").value="",page.querySelector(".txtProfilePin").value=user.Configuration.ProfilePin||"",user.Configuration.EnableLocalPassword?user.HasConfiguredEasyPassword?page.querySelector(".selectInNetworkPasswordMode").value="pin":page.querySelector(".selectInNetworkPasswordMode").value="nopassword":page.querySelector(".selectInNetworkPasswordMode").value="password",onInNetworkPasswordModeChange.call(page.querySelector(".selectInNetworkPasswordMode")),autoFocus&&focusManager.autoFocus(page,{skipIfNotEnabled:!0})})}),page.querySelector(".txtCurrentPassword").value="",page.querySelector(".txtNewPassword").value="",page.querySelector(".txtNewPasswordConfirm").value=""}function onInNetworkPasswordModeChange(e){var form=this.closest("FORM"),txtEasyPassword=form.querySelector(".txtInNetworkPassword");"pin"===this.value?(form.querySelector(".fldInNetworkPassword").classList.remove("hide"),txtEasyPassword.setAttribute("required","required")):(form.querySelector(".fldInNetworkPassword").classList.add("hide"),txtEasyPassword.removeAttribute("required"))}function saveProfilePin(instance){let view=instance.view,params=instance.params,apiClient=instance.apiClient,userId=params.userId;apiClient.getUser(userId,!1).then(function(user){var pin=view.querySelector(".txtProfilePin").value;apiClient.updateProfilePin(userId,pin).then(function(response){loading.hide(),formHelper.handleConfigurationSavedResponse(response),loadUser(view,params,apiClient)},function(err){loading.hide(),formHelper.handleErrorResponse(err)})})}function savePassword(instance){let view=instance.view,params=instance.params,apiClient=instance.apiClient,userId=params.userId;apiClient.getUser(userId,!1).then(function(user){let currentPassword="";user.HasConfiguredPassword&&(currentPassword=view.querySelector(".txtCurrentPassword").value);user=view.querySelector(".txtNewPassword").value;apiClient.updateUserPassword(userId,currentPassword,user).then(function(){loading.hide(),showToast(globalize.translate("PasswordSaved")),loadUser(view,params,apiClient)},function(){loading.hide(),showAlert({title:globalize.translate("HeaderSignInError"),text:globalize.translate("MessageInvalidUser")})})})}function onProfilePinFormSubmit(e){return loading.show(),saveProfilePin(this),e.preventDefault(),!1}function onSubmit(e){var form=e.target.closest("form");return form.querySelector(".txtNewPassword").value!==form.querySelector(".txtNewPasswordConfirm").value?showAlert(globalize.translate("ErrorMessagePasswordNotMatchConfirm")):(loading.show(),savePassword(this)),e.preventDefault(),!1}function onLocalAccessSaved(instance){var view=instance.view,params=instance.params,instance=instance.apiClient;loading.hide(),formHelper.handleConfigurationSavedResponse(),loadUser(view,params,instance)}function onLocalAccessSubmit(e){let instance=this,view=instance.view;var params=instance.params;let apiClient=instance.apiClient,userId=(loading.show(),params.userId),mode=view.querySelector(".selectInNetworkPasswordMode").value;return apiClient.getUser(userId,!1).then(function(user){user.Configuration.EnableLocalPassword="password"!==mode,apiClient.updateUserConfiguration(user.Id,user.Configuration).then(function(){var easyPw;"password"===mode?onLocalAccessSaved(instance):(easyPw="nopassword"===mode?"":view.querySelector(".txtInNetworkPassword").value,apiClient.updateEasyPassword(userId,easyPw).then(function(){onLocalAccessSaved(instance)}))})}),e.preventDefault(),!1}function resetPassword(){let view=this.view,params=this.params,apiClient=this.apiClient;showConfirm(globalize.translate("PasswordResetConfirmation"),globalize.translate("HeaderResetPassword")).then(function(){var userId=params.userId;loading.show(),apiClient.resetUserPassword(userId).then(function(){loading.hide(),showAlert({text:globalize.translate("PasswordResetComplete"),title:globalize.translate("HeaderPasswordReset")}),loadUser(view,params,apiClient)})})}function UserPasswordController(view,params,apiClient){this.view=view,this.params=params,this.apiClient=apiClient,view.querySelector(".updatePasswordForm").addEventListener("submit",onSubmit.bind(this)),view.querySelector(".localAccessForm").addEventListener("submit",onLocalAccessSubmit.bind(this)),view.querySelector(".selectInNetworkPasswordMode").addEventListener("change",onInNetworkPasswordModeChange),view.querySelector(".profilePinForm").addEventListener("submit",onProfilePinFormSubmit.bind(this));var apiClient=view.querySelector(".btnResetPassword"),btns=(apiClient&&apiClient.addEventListener("click",resetPassword.bind(this)),view.querySelectorAll(".userEditTabButton"));for(let i=0,length=btns.length;i<length;i++)btns[i].href=btns[i].getAttribute("data-href")+"?userId="+params.userId;view.querySelector(".pinFieldDescription").innerHTML=globalize.translate("YourPinMustBe",4)}UserPasswordController.prototype.resume=function(options){loadUser(this.view,this.params,this.apiClient,options?.autoFocus)},UserPasswordController.prototype.pause=function(){},UserPasswordController.prototype.destroy=function(){this.view=null,this.params=null,this.apiClient=null};export default UserPasswordController;