mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 08:36:12 +01:00
feat: add a filter hook to login
so async checks can be made by plugins like showing custom dialogs before login etc. setting cancel=true in plugin returns back to login page throwing errors will show it once #11969 is fixed
This commit is contained in:
@@ -11,10 +11,11 @@ define('forum/login', ['hooks', 'translator', 'jquery-form'], function (hooks, t
|
|||||||
const submitEl = $('#login');
|
const submitEl = $('#login');
|
||||||
const formEl = $('#login-form');
|
const formEl = $('#login-form');
|
||||||
|
|
||||||
submitEl.on('click', function (e) {
|
submitEl.on('click', async function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
const username = $('#username').val();
|
||||||
if (!$('#username').val() || !$('#password').val()) {
|
const password = $('#password').val();
|
||||||
|
if (!username || !password) {
|
||||||
errorEl.find('p').translateText('[[error:invalid-username-or-password]]');
|
errorEl.find('p').translateText('[[error:invalid-username-or-password]]');
|
||||||
errorEl.show();
|
errorEl.show();
|
||||||
} else {
|
} else {
|
||||||
@@ -26,6 +27,23 @@ define('forum/login', ['hooks', 'translator', 'jquery-form'], function (hooks, t
|
|||||||
|
|
||||||
submitEl.addClass('disabled');
|
submitEl.addClass('disabled');
|
||||||
|
|
||||||
|
try {
|
||||||
|
const hookData = await hooks.fire('filter:app.login', {
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
cancel: false,
|
||||||
|
});
|
||||||
|
if (hookData.cancel) {
|
||||||
|
submitEl.removeClass('disabled');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
errorEl.find('p').translateText(err.message);
|
||||||
|
errorEl.show();
|
||||||
|
submitEl.removeClass('disabled');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
hooks.fire('action:app.login');
|
hooks.fire('action:app.login');
|
||||||
formEl.ajaxSubmit({
|
formEl.ajaxSubmit({
|
||||||
headers: {
|
headers: {
|
||||||
|
|||||||
Reference in New Issue
Block a user