jellyfin-web/dashboard-ui/scripts/userpasswordpage.js

226 lines
7.5 KiB
JavaScript
Raw Normal View History

2016-06-21 21:39:47 -07:00
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);
});
};
});