summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints')
-rw-r--r--src/server/api/endpoints/admin/update-meta.ts33
-rw-r--r--src/server/api/endpoints/meta.ts22
2 files changed, 48 insertions, 7 deletions
diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts
index b4b2b231ab..85266b47cf 100644
--- a/src/server/api/endpoints/admin/update-meta.ts
+++ b/src/server/api/endpoints/admin/update-meta.ts
@@ -88,6 +88,27 @@ export const meta = {
desc: {
'ja-JP': 'リモートのファイルをキャッシュするか否か'
}
+ },
+
+ enableRecaptcha: {
+ validator: $.bool.optional,
+ desc: {
+ 'ja-JP': 'reCAPTCHAを使用するか否か'
+ }
+ },
+
+ recaptchaSiteKey: {
+ validator: $.str.optional,
+ desc: {
+ 'ja-JP': 'reCAPTCHA site key'
+ }
+ },
+
+ recaptchaSecretKey: {
+ validator: $.str.optional,
+ desc: {
+ 'ja-JP': 'reCAPTCHA secret key'
+ }
}
}
};
@@ -139,6 +160,18 @@ export default define(meta, (ps) => new Promise(async (res, rej) => {
set.cacheRemoteFiles = ps.cacheRemoteFiles;
}
+ if (ps.enableRecaptcha !== undefined) {
+ set.enableRecaptcha = ps.enableRecaptcha;
+ }
+
+ if (ps.recaptchaSiteKey !== undefined) {
+ set.recaptchaSiteKey = ps.recaptchaSiteKey;
+ }
+
+ if (ps.recaptchaSecretKey !== undefined) {
+ set.recaptchaSecretKey = ps.recaptchaSecretKey;
+ }
+
await Meta.update({}, {
$set: set
}, { upsert: true });
diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts
index e3d3ad520f..3ed225cc5f 100644
--- a/src/server/api/endpoints/meta.ts
+++ b/src/server/api/endpoints/meta.ts
@@ -35,7 +35,7 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => {
}
});
- res({
+ const response: any = {
maintainer: config.maintainer,
version: pkg.version,
@@ -60,24 +60,32 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => {
driveCapacityPerLocalUserMb: instance.localDriveCapacityMb,
driveCapacityPerRemoteUserMb: instance.remoteDriveCapacityMb,
cacheRemoteFiles: instance.cacheRemoteFiles,
- recaptchaSitekey: config.recaptcha ? config.recaptcha.site_key : null,
+ recaptchaSiteKey: instance.enableRecaptcha ? instance.recaptchaSiteKey : null,
swPublickey: config.sw ? config.sw.public_key : null,
- hidedTags: (me && me.isAdmin) ? instance.hidedTags : undefined,
bannerUrl: instance.bannerUrl,
maxNoteTextLength: instance.maxNoteTextLength,
emojis: emojis,
+ };
- features: ps.detail ? {
+ if (ps.detail) {
+ response.features = {
registration: !instance.disableRegistration,
localTimeLine: !instance.disableLocalTimeline,
elasticsearch: config.elasticsearch ? true : false,
- recaptcha: config.recaptcha ? true : false,
+ recaptcha: instance.enableRecaptcha,
objectStorage: config.drive && config.drive.storage === 'minio',
twitter: config.twitter ? true : false,
github: config.github ? true : false,
serviceWorker: config.sw ? true : false,
userRecommendation: config.user_recommendation ? config.user_recommendation : {}
- } : undefined
- });
+ };
+ }
+
+ if (me && me.isAdmin) {
+ response.hidedTags = instance.hidedTags;
+ response.recaptchaSecretKey = instance.recaptchaSecretKey;
+ }
+
+ res(response);
}));