This commit is contained in:
syuilo
2018-12-20 04:08:13 +09:00
parent 710ba526fa
commit 454632d785
9 changed files with 91 additions and 25 deletions

View File

@ -285,6 +285,27 @@ export const meta = {
'ja-JP': 'SMTPサーバのパスワード'
}
},
enableServiceWorker: {
validator: $.bool.optional,
desc: {
'ja-JP': 'ServiceWorkerを有効にするか否か'
}
},
swPublicKey: {
validator: $.str.optional.nullable,
desc: {
'ja-JP': 'ServiceWorkerのVAPIDキーペアの公開鍵'
}
},
swPrivateKey: {
validator: $.str.optional.nullable,
desc: {
'ja-JP': 'ServiceWorkerのVAPIDキーペアの秘密鍵'
}
},
}
};
@ -447,6 +468,18 @@ export default define(meta, (ps) => new Promise(async (res, rej) => {
set.errorImageUrl = ps.errorImageUrl;
}
if (ps.enableServiceWorker !== undefined) {
set.enableServiceWorker = ps.enableServiceWorker;
}
if (ps.swPublicKey !== undefined) {
set.swPublicKey = ps.swPublicKey;
}
if (ps.swPrivateKey !== undefined) {
set.swPrivateKey = ps.swPrivateKey;
}
await Meta.update({}, {
$set: set
}, { upsert: true });

View File

@ -63,7 +63,7 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => {
cacheRemoteFiles: instance.cacheRemoteFiles,
enableRecaptcha: instance.enableRecaptcha,
recaptchaSiteKey: instance.recaptchaSiteKey,
swPublickey: null,
swPublickey: instance.swPublicKey,
bannerUrl: instance.bannerUrl,
errorImageUrl: instance.errorImageUrl,
maxNoteTextLength: instance.maxNoteTextLength,
@ -85,7 +85,7 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => {
twitter: instance.enableTwitterIntegration,
github: instance.enableGithubIntegration,
discord: instance.enableDiscordIntegration,
serviceWorker: config.sw ? true : false,
serviceWorker: instance.enableServiceWorker,
userRecommendation: {
external: instance.enableExternalUserRecommendation,
engine: instance.externalUserRecommendationEngine,
@ -114,6 +114,7 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => {
response.smtpPort = instance.smtpPort;
response.smtpUser = instance.smtpUser;
response.smtpPass = instance.smtpPass;
response.swPrivateKey = instance.swPrivateKey;
}
res(response);

View File

@ -1,7 +1,7 @@
import $ from 'cafy';
import Subscription from '../../../../models/sw-subscription';
import config from '../../../../config';
import define from '../../define';
import fetchMeta from '../../../../misc/fetch-meta';
export const meta = {
requireCredential: true,
@ -31,10 +31,12 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
deletedAt: { $exists: false }
});
const instance = await fetchMeta();
if (exist != null) {
return res({
state: 'already-subscribed',
key: config.sw.publicKey
key: instance.swPublicKey
});
}
@ -47,6 +49,6 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => {
res({
state: 'subscribed',
key: config.sw.publicKey
key: instance.swPublicKey
});
}));