1 line
7 KiB
JavaScript
1 line
7 KiB
JavaScript
|
|
import connectionManager from"./../emby-apiclient/connectionmanager.js";import loading from"./../loading/loading.js";import globalize from"./globalize.js";import textEncoding from"./textencoding.js";import responseHelper from"./responsehelper.js";import{appHost}from"./servicelocator.js";import appSettings from"./appsettings.js";function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function showAlertAndResolve(options){return showAlert(options).catch(function(){return Promise.resolve()})}function showConfirm(options){return Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)})}function showServerUpdateNeededAlert(instance){var text=globalize.translate("ServerUpdateNeeded","https://emby.media");let html;return showAlertAndResolve({html:html=appHost.supports("externallinks")&&appHost.supports("targetblank")&&appHost.supports("externalappinfo")?globalize.translate("ServerUpdateNeeded",'<a is="emby-linkbutton" class="button-link" href="https://emby.media">https://emby.media</a>'):html,text:text}).then(function(){return instance.showSelectServer()})}function BaseAppRouter(){}function showServerLoginFromUserId(instance,options){var userId=options.userId;if(!userId)return Promise.reject();let apiClient=options.apiClient;return apiClient.getUser(userId).then(function(user){return user.HasPassword?instance.showServerLogin({apiClient:apiClient,username:user.Name,loginType:"manual"}):instance.authenticateUser({serverId:user.ServerId,username:user.Name})})}function catchToResolve(err){return Promise.resolve()}function showProfilePinPrompt(instance,apiClient,user){return loading.hide(),instance.showProfilePinPrompt({apiClient:apiClient,user:user}).then(function(result){return instance.setPinValidated(user.Id),Promise.resolve(result)})}function onChangeToUserErrorPublic(err){return loading.hide(),Promise.reject(err)}function onChangeToUserError(err){loading.hide();var errorName=(err?.name||"").toLowerCase();let instance=this.instance;var options=this.options;let apiClient=options.apiClient;options=options.userId;return"forgotpin"!==errorName?Promise.reject(err):apiClient.getUser(options).then(function(user){user.HasPassword?instance.showServerLogin({apiClient:apiClient,username:user.Name,loginType:"manual"}):instance.showServerLogin({apiClient:apiClient})})}BaseAppRouter.prototype.setPinValidated=function(userId){this._pinValidated=userId},BaseAppRouter.prototype.isPinValidated=function(userId){return this._pinValidated===userId},BaseAppRouter.prototype.showServerLogin=function(options){let instance=this;return showServerLoginFromUserId(this,options).catch(function(){var apiClient=options.apiClient;return console.log("appRouter - showServerLogin: "+apiClient.serverId()),apiClient.getPublicUsersQueryResult({Limit:0}).then(function(result){return result.TotalRecordCount?options.loginType="visual":options.loginType="manual",instance.showServerLogin(options)})})},BaseAppRouter.prototype.showEnableProfilePinPrompt=function(options){let user=options.user;return showConfirm({title:globalize.translate("TitleProfilePin"),cancelText:globalize.translate("No"),confirmText:globalize.translate("Yes"),text:globalize.translate("RequireEnteringPinToReturnQuestion")}).then(function(){appSettings.enableProfilePin(user.Id,!0)},function(){appSettings.enableProfilePin(user.Id,!1)})},BaseAppRouter.prototype.authenticateUser=function(options){loading.show();let instance=this,apiClient=connectionManager.getApiClient(options.serverId);return apiClient.authenticateUserByName(options.username,options.password).then(function(result){instance.setPinValidated(result.User.Id);let profilePinPromise;return(profilePinPromise=appSettings.enableAutoLogin()&&result.User.Configuration.ProfilePin?(loading.hide(),instance.showEnableProfilePinPrompt({apiClient:apiClient,user:result.User}).catch(catchToResolve)):(result.User.Configuration.ProfilePin?appSettings.enableProfilePin(result.User.Id,!0):appSettings.enableProfilePin(result.User.Id,!1),Pr
|