mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-18 03:18:19 -07:00
226 lines
7.5 KiB
JavaScript
226 lines
7.5 KiB
JavaScript
|
define([], function () {
|
|||
|
|
|||
|
function loadUser(page, params) {
|
|||
|
|
|||
|
var userid = params.userId;
|
|||
|
|
|||
|
ApiClient.getUser(userid).then(function (user) {
|
|||
|
|
|||
|
Dashboard.getCurrentUser().then(function (loggedInUser) {
|
|||
|
|
|||
|
Dashboard.setPageTitle(user.Name);
|
|||
|
|
|||
|
var showPasswordSection = true;
|
|||
|
var showLocalAccessSection = false;
|
|||
|
if (user.ConnectLinkType == 'Guest') {
|
|||
|
page.querySelector('.localAccessSection').classList.add('hide');
|
|||
|
showPasswordSection = false;
|
|||
|
}
|
|||
|
else if (user.HasConfiguredPassword) {
|
|||
|
page.querySelector('#btnResetPassword').classList.remove('hide');
|
|||
|
page.querySelector('#fldCurrentPassword').classList.remove('hide');
|
|||
|
showLocalAccessSection = true;
|
|||
|
} else {
|
|||
|
page.querySelector('#btnResetPassword').classList.add('hide');
|
|||
|
page.querySelector('#fldCurrentPassword').classList.add('hide');
|
|||
|
}
|
|||
|
|
|||
|
if (showPasswordSection && (loggedInUser.Policy.IsAdministrator || user.Policy.EnableUserPreferenceAccess)) {
|
|||
|
page.querySelector('.passwordSection').classList.remove('hide');
|
|||
|
} else {
|
|||
|
page.querySelector('.passwordSection').classList.add('hide');
|
|||
|
}
|
|||
|
|
|||
|
if (showLocalAccessSection && (loggedInUser.Policy.IsAdministrator || user.Policy.EnableUserPreferenceAccess)) {
|
|||
|
page.querySelector('.localAccessSection').classList.remove('hide');
|
|||
|
} else {
|
|||
|
page.querySelector('.localAccessSection').classList.add('hide');
|
|||
|
}
|
|||
|
|
|||
|
var txtEasyPassword = page.querySelector('#txtEasyPassword');
|
|||
|
txtEasyPassword.value = '';
|
|||
|
|
|||
|
if (user.HasConfiguredEasyPassword) {
|
|||
|
txtEasyPassword.placeholder = '******';
|
|||
|
page.querySelector('#btnResetEasyPassword').classList.remove('hide');
|
|||
|
} else {
|
|||
|
txtEasyPassword.removeAttribute('placeholder');
|
|||
|
txtEasyPassword.placeholder = '';
|
|||
|
page.querySelector('#btnResetEasyPassword').classList.add('hide');
|
|||
|
}
|
|||
|
|
|||
|
page.querySelector('.chkEnableLocalEasyPassword').checked = user.Configuration.EnableLocalPassword;
|
|||
|
});
|
|||
|
});
|
|||
|
|
|||
|
page.querySelector('#txtCurrentPassword').value = '';
|
|||
|
page.querySelector('#txtNewPassword').value = '';
|
|||
|
page.querySelector('#txtNewPasswordConfirm').value = '';
|
|||
|
}
|
|||
|
|
|||
|
return function (view, params) {
|
|||
|
|
|||
|
function saveEasyPassword() {
|
|||
|
|
|||
|
var userId = params.userId;
|
|||
|
|
|||
|
var easyPassword = view.querySelector('#txtEasyPassword').value;
|
|||
|
|
|||
|
if (easyPassword) {
|
|||
|
|
|||
|
ApiClient.updateEasyPassword(userId, easyPassword).then(function () {
|
|||
|
|
|||
|
onEasyPasswordSaved(userId);
|
|||
|
|
|||
|
});
|
|||
|
|
|||
|
} else {
|
|||
|
onEasyPasswordSaved(userId);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function onEasyPasswordSaved(userId) {
|
|||
|
|
|||
|
ApiClient.getUser(userId).then(function (user) {
|
|||
|
|
|||
|
user.Configuration.EnableLocalPassword = view.querySelector('.chkEnableLocalEasyPassword').checked;
|
|||
|
|
|||
|
ApiClient.updateUserConfiguration(user.Id, user.Configuration).then(function () {
|
|||
|
|
|||
|
Dashboard.hideLoadingMsg();
|
|||
|
|
|||
|
require(['toast'], function (toast) {
|
|||
|
toast(Globalize.translate('MessageSettingsSaved'));
|
|||
|
});
|
|||
|
loadUser(view, params);
|
|||
|
});
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
function savePassword() {
|
|||
|
|
|||
|
var userId = getParameterByName("userId");
|
|||
|
|
|||
|
var currentPassword = view.querySelector('#txtCurrentPassword').value;
|
|||
|
var newPassword = view.querySelector('#txtNewPassword').value;
|
|||
|
|
|||
|
ApiClient.updateUserPassword(userId, currentPassword, newPassword).then(function () {
|
|||
|
|
|||
|
Dashboard.hideLoadingMsg();
|
|||
|
|
|||
|
require(['toast'], function (toast) {
|
|||
|
toast(Globalize.translate('PasswordSaved'));
|
|||
|
});
|
|||
|
loadUser(view, params);
|
|||
|
|
|||
|
}, function () {
|
|||
|
|
|||
|
Dashboard.hideLoadingMsg();
|
|||
|
|
|||
|
Dashboard.alert({
|
|||
|
title: Globalize.translate('HeaderLoginFailure'),
|
|||
|
message: Globalize.translate('MessageInvalidUser')
|
|||
|
});
|
|||
|
|
|||
|
});
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
function onSubmit(e) {
|
|||
|
|
|||
|
var form = this;
|
|||
|
|
|||
|
if (form.querySelector('#txtNewPassword').value != form.querySelector('#txtNewPasswordConfirm').value) {
|
|||
|
|
|||
|
require(['toast'], function (toast) {
|
|||
|
toast(Globalize.translate('PasswordMatchError'));
|
|||
|
});
|
|||
|
} else {
|
|||
|
|
|||
|
Dashboard.showLoadingMsg();
|
|||
|
savePassword();
|
|||
|
}
|
|||
|
|
|||
|
// Disable default form submission
|
|||
|
e.preventDefault();
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
function onLocalAccessSubmit(e) {
|
|||
|
|
|||
|
Dashboard.showLoadingMsg();
|
|||
|
|
|||
|
saveEasyPassword();
|
|||
|
|
|||
|
// Disable default form submission
|
|||
|
e.preventDefault();
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
function resetPassword() {
|
|||
|
|
|||
|
var msg = Globalize.translate('PasswordResetConfirmation');
|
|||
|
|
|||
|
require(['confirm'], function (confirm) {
|
|||
|
|
|||
|
confirm(msg, Globalize.translate('PasswordResetHeader')).then(function () {
|
|||
|
|
|||
|
var userId = getParameterByName("userId");
|
|||
|
|
|||
|
Dashboard.showLoadingMsg();
|
|||
|
|
|||
|
ApiClient.resetUserPassword(userId).then(function () {
|
|||
|
|
|||
|
Dashboard.hideLoadingMsg();
|
|||
|
|
|||
|
Dashboard.alert({
|
|||
|
message: Globalize.translate('PasswordResetComplete'),
|
|||
|
title: Globalize.translate('PasswordResetHeader')
|
|||
|
});
|
|||
|
|
|||
|
loadUser(view, params);
|
|||
|
|
|||
|
});
|
|||
|
});
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
function resetEasyPassword() {
|
|||
|
|
|||
|
var msg = Globalize.translate('PinCodeResetConfirmation');
|
|||
|
|
|||
|
require(['confirm'], function (confirm) {
|
|||
|
|
|||
|
confirm(msg, Globalize.translate('HeaderPinCodeReset')).then(function () {
|
|||
|
|
|||
|
var userId = getParameterByName("userId");
|
|||
|
|
|||
|
Dashboard.showLoadingMsg();
|
|||
|
|
|||
|
ApiClient.resetEasyPassword(userId).then(function () {
|
|||
|
|
|||
|
Dashboard.hideLoadingMsg();
|
|||
|
|
|||
|
Dashboard.alert({
|
|||
|
message: Globalize.translate('PinCodeResetComplete'),
|
|||
|
title: Globalize.translate('HeaderPinCodeReset')
|
|||
|
});
|
|||
|
|
|||
|
loadUser(view, params);
|
|||
|
|
|||
|
});
|
|||
|
});
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
view.querySelector('.updatePasswordForm').addEventListener('submit', onSubmit);
|
|||
|
view.querySelector('.localAccessForm').addEventListener('submit', onLocalAccessSubmit);
|
|||
|
|
|||
|
view.querySelector('#btnResetEasyPassword').addEventListener('click', resetEasyPassword);
|
|||
|
view.querySelector('#btnResetPassword').addEventListener('click', resetPassword);
|
|||
|
|
|||
|
view.addEventListener('viewshow', function () {
|
|||
|
loadUser(view, params);
|
|||
|
});
|
|||
|
};
|
|||
|
});
|