mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-12 01:20:18 +08:00
Bumps the lint group with 4 updates in the / directory: [@discourse/lint-configs](https://github.com/discourse/lint-configs), [ember-template-lint](https://github.com/ember-template-lint/ember-template-lint), [eslint](https://github.com/eslint/eslint) and [stylelint](https://github.com/stylelint/stylelint). Updates `@discourse/lint-configs` from 2.22.0 to 2.28.0 - [Commits](https://github.com/discourse/lint-configs/commits) Updates `ember-template-lint` from 7.7.0 to 7.9.1 - [Release notes](https://github.com/ember-template-lint/ember-template-lint/releases) - [Changelog](https://github.com/ember-template-lint/ember-template-lint/blob/master/CHANGELOG.md) - [Commits](https://github.com/ember-template-lint/ember-template-lint/commits) Updates `eslint` from 9.27.0 to 9.32.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.27.0...v9.32.0) Updates `stylelint` from 16.19.1 to 16.22.0 - [Release notes](https://github.com/stylelint/stylelint/releases) - [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint/stylelint/compare/16.19.1...16.22.0) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Discourse CI <ci@ci.invalid> Co-authored-by: Jarek Radosz <jarek@cvx.dev>
58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
import { Promise } from "rsvp";
|
|
import { ajax } from "discourse/lib/ajax";
|
|
import { getOwnerWithFallback } from "discourse/lib/get-owner";
|
|
import { withPluginApi } from "discourse/lib/plugin-api";
|
|
|
|
const PLUGIN_ID = "discourse-hCaptcha";
|
|
|
|
function initializeHCaptcha(api, container) {
|
|
const siteSettings = container.lookup("service:site-settings");
|
|
|
|
if (!siteSettings.discourse_hcaptcha_enabled) {
|
|
return;
|
|
}
|
|
|
|
api.modifyClassStatic("model:user", {
|
|
pluginId: PLUGIN_ID,
|
|
|
|
createAccount() {
|
|
const hCaptchaService = getOwnerWithFallback(this).lookup(
|
|
"service:h-captcha-service"
|
|
);
|
|
hCaptchaService.submitted = true;
|
|
|
|
if (hCaptchaService.invalid) {
|
|
return Promise.reject();
|
|
}
|
|
|
|
const data = {
|
|
token: hCaptchaService.token,
|
|
};
|
|
|
|
const originalAccountCreation = this._super;
|
|
return ajax("/hcaptcha/create.json", {
|
|
data,
|
|
type: "POST",
|
|
})
|
|
.then(() => {
|
|
return originalAccountCreation(...arguments);
|
|
})
|
|
.catch(() => {
|
|
hCaptchaService.failed = true;
|
|
return Promise.reject();
|
|
})
|
|
.finally(() => {
|
|
hCaptchaService.reset();
|
|
});
|
|
},
|
|
});
|
|
}
|
|
|
|
export default {
|
|
name: "hcaptcha-initializer",
|
|
before: "inject-discourse-objects",
|
|
|
|
initialize(container) {
|
|
withPluginApi((api) => initializeHCaptcha(api, container));
|
|
},
|
|
};
|