Add support mCaptcha as captcha provider (#20458)

https://mcaptcha.org/

Co-authored-by: Felipe Leopoldo Sologuren Gutiérrez <fsologureng@users.noreply.github.com>
This commit is contained in:
Gusted 2022-08-10 13:20:10 +00:00 committed by GitHub
parent 452272c038
commit 58de07e5fd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 183 additions and 6 deletions

View file

@ -0,0 +1,16 @@
export async function initMcaptcha() {
const mCaptchaEl = document.querySelector('.m-captcha');
if (!mCaptchaEl) return;
const {default: mCaptcha} = await import(/* webpackChunkName: "mcaptcha-vanilla-glue" */'@mcaptcha/vanilla-glue');
mCaptcha.INPUT_NAME = 'm-captcha-response';
const siteKey = mCaptchaEl.getAttribute('data-sitekey');
const instanceURL = mCaptchaEl.getAttribute('data-instance-url');
mCaptcha.default({
siteKey: {
instanceUrl: new URL(instanceURL),
key: siteKey,
}
});
}

View file

@ -86,6 +86,7 @@ import {initCommonOrganization} from './features/common-organization.js';
import {initRepoWikiForm} from './features/repo-wiki.js';
import {initRepoCommentForm, initRepository} from './features/repo-legacy.js';
import {initFormattingReplacements} from './features/formatting.js';
import {initMcaptcha} from './features/mcaptcha.js';
// Run time-critical code as soon as possible. This is safe to do because this
// script appears at the end of <body> and rendered HTML is accessible at that point.
@ -182,6 +183,7 @@ $(document).ready(() => {
initRepository();
initCommitStatuses();
initMcaptcha();
initUserAuthLinkAccountView();
initUserAuthOauth2();

View file

@ -156,7 +156,8 @@ textarea:focus,
padding-left: @create-page-form-input-padding+30px;
}
.inline.field > label {
.inline.field > label,
.inline.field > span {
text-align: right;
width: @create-page-form-input-padding;
word-wrap: break-word;

View file

@ -168,3 +168,8 @@
.py-3 { padding-top: .5rem !important; padding-bottom: .5rem !important; }
.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.py-5 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
@media @mediaSm {
.db-small { display: block !important; }
.w-100-small { width: 100% !important; }
}