1
0
mirror of https://github.com/flarum/core.git synced 2025-07-25 18:51:40 +02:00

Remove sudo mode and add password confirmation when changing email address

closes #674
This commit is contained in:
Toby Zerner
2016-03-11 12:44:18 +10:30
parent c95dbc0cb4
commit e46878902a
19 changed files with 80 additions and 477 deletions

View File

@@ -16951,15 +16951,6 @@ System.register('flarum/App', ['flarum/utils/ItemList', 'flarum/components/Alert
}, function (error) {
_this2.requestError = error;
if (error.response && error.response.errors && error.response.errors[0] && error.response.errors[0].code === 'invalid_access_token') {
_this2.modal.show(new ConfirmPasswordModal({
deferredRequest: originalOptions,
deferred: deferred,
error: error
}));
return;
}
var children = undefined;
switch (error.status) {
@@ -18302,121 +18293,6 @@ System.register('flarum/components/Checkbox', ['flarum/Component', 'flarum/compo
}
};
});;
System.register('flarum/components/ConfirmPasswordModal', ['flarum/components/Modal', 'flarum/components/Button', 'flarum/utils/extractText'], function (_export) {
'use strict';
var Modal, Button, extractText, ConfirmPasswordModal;
return {
setters: [function (_flarumComponentsModal) {
Modal = _flarumComponentsModal['default'];
}, function (_flarumComponentsButton) {
Button = _flarumComponentsButton['default'];
}, function (_flarumUtilsExtractText) {
extractText = _flarumUtilsExtractText['default'];
}],
execute: function () {
ConfirmPasswordModal = (function (_Modal) {
babelHelpers.inherits(ConfirmPasswordModal, _Modal);
function ConfirmPasswordModal() {
babelHelpers.classCallCheck(this, ConfirmPasswordModal);
babelHelpers.get(Object.getPrototypeOf(ConfirmPasswordModal.prototype), 'constructor', this).apply(this, arguments);
}
babelHelpers.createClass(ConfirmPasswordModal, [{
key: 'init',
value: function init() {
babelHelpers.get(Object.getPrototypeOf(ConfirmPasswordModal.prototype), 'init', this).call(this);
this.password = m.prop('');
}
}, {
key: 'className',
value: function className() {
return 'ConfirmPasswordModal Modal--small';
}
}, {
key: 'title',
value: function title() {
return app.translator.trans('core.forum.confirm_password.title');
}
}, {
key: 'content',
value: function content() {
return m(
'div',
{ className: 'Modal-body' },
m(
'div',
{ className: 'Form Form--centered' },
m(
'div',
{ className: 'Form-group' },
m('input', {
type: 'password',
className: 'FormControl',
bidi: this.password,
placeholder: extractText(app.translator.trans('core.forum.confirm_password.password_placeholder')),
disabled: this.loading })
),
m(
'div',
{ className: 'Form-group' },
m(
Button,
{
type: 'submit',
className: 'Button Button--primary Button--block',
loading: this.loading },
app.translator.trans('core.forum.confirm_password.submit_button')
)
)
)
);
}
}, {
key: 'onsubmit',
value: function onsubmit(e) {
var _this = this;
e.preventDefault();
this.loading = true;
app.session.login(app.session.user.email(), this.password(), { errorHandler: this.onerror.bind(this) }).then(function () {
_this.success = true;
_this.hide();
app.request(_this.props.deferredRequest).then(function (response) {
return _this.props.deferred.resolve(response);
}, function (response) {
return _this.props.deferred.reject(response);
});
})['catch'](this.loaded.bind(this));
}
}, {
key: 'onerror',
value: function onerror(error) {
if (error.status === 401) {
error.alert.props.children = app.translator.trans('core.forum.log_in.invalid_login_message');
}
babelHelpers.get(Object.getPrototypeOf(ConfirmPasswordModal.prototype), 'onerror', this).call(this, error);
}
}, {
key: 'onhide',
value: function onhide() {
if (this.success) return;
this.props.deferred.reject(this.props.error);
}
}]);
return ConfirmPasswordModal;
})(Modal);
_export('default', ConfirmPasswordModal);
}
};
});;
System.register("flarum/components/DashboardPage", ["flarum/Component"], function (_export) {
"use strict";
@@ -21934,10 +21810,13 @@ System.register('flarum/Model', [], function (_export) {
this.pushData(data);
var request = { data: data };
if (options.meta) request.meta = options.meta;
return app.request(babelHelpers._extends({
method: this.exists ? 'PATCH' : 'POST',
url: app.forum.attribute('apiUrl') + this.apiEndpoint(),
data: { data: data }
data: request
}, options)).then(
// If everything went well, we'll make sure the store knows that this
// model exists now (if it didn't already), and we'll push the data that