summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/notes
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-01-16 02:30:55 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-01-16 02:30:55 +0900
commitc2f6b099692520548bd4218ae37a4917c60343af (patch)
treedddb51c4c80cecac1563fa14b5b3c0345c716012 /src/server/api/endpoints/notes
parentMerge branch 'develop' of https://github.com/syuilo/misskey into develop (diff)
downloadsharkey-c2f6b099692520548bd4218ae37a4917c60343af.tar.gz
sharkey-c2f6b099692520548bd4218ae37a4917c60343af.tar.bz2
sharkey-c2f6b099692520548bd4218ae37a4917c60343af.zip
disableLocalTimeline機能を強化
* ストリームだけではなくAPIも無効に * モデレーターは無効の場合でも見れるように * グローバルタイムラインも無効に(連合数が少ないインスタンスではグローバルタイムラインは実質的にローカルタイムラインと同一なので)
Diffstat (limited to 'src/server/api/endpoints/notes')
-rw-r--r--src/server/api/endpoints/notes/global-timeline.ts8
-rw-r--r--src/server/api/endpoints/notes/hybrid-timeline.ts6
-rw-r--r--src/server/api/endpoints/notes/local-timeline.ts8
3 files changed, 22 insertions, 0 deletions
diff --git a/src/server/api/endpoints/notes/global-timeline.ts b/src/server/api/endpoints/notes/global-timeline.ts
index b7f765f27d..f5fd0d6dd8 100644
--- a/src/server/api/endpoints/notes/global-timeline.ts
+++ b/src/server/api/endpoints/notes/global-timeline.ts
@@ -4,6 +4,7 @@ import Mute from '../../../../models/mute';
import { packMany } from '../../../../models/note';
import define from '../../define';
import { countIf } from '../../../../prelude/array';
+import fetchMeta from '../../../../misc/fetch-meta';
export const meta = {
desc: {
@@ -51,6 +52,13 @@ export const meta = {
};
export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+ const meta = await fetchMeta();
+ if (meta.disableLocalTimeline) {
+ if (user == null || (!user.isAdmin && !user.isModerator)) {
+ return rej('local timeline disabled');
+ }
+ }
+
// Check if only one of sinceId, untilId, sinceDate, untilDate specified
if (countIf(x => x != null, [ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate]) > 1) {
return rej('only one of sinceId, untilId, sinceDate, untilDate can be specified');
diff --git a/src/server/api/endpoints/notes/hybrid-timeline.ts b/src/server/api/endpoints/notes/hybrid-timeline.ts
index 7cf05cb9a8..20855e5139 100644
--- a/src/server/api/endpoints/notes/hybrid-timeline.ts
+++ b/src/server/api/endpoints/notes/hybrid-timeline.ts
@@ -5,6 +5,7 @@ import { getFriends } from '../../common/get-friends';
import { packMany } from '../../../../models/note';
import define from '../../define';
import { countIf } from '../../../../prelude/array';
+import fetchMeta from '../../../../misc/fetch-meta';
export const meta = {
desc: {
@@ -91,6 +92,11 @@ export const meta = {
};
export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+ const meta = await fetchMeta();
+ if (meta.disableLocalTimeline && !user.isAdmin && !user.isModerator) {
+ return rej('local timeline disabled');
+ }
+
// Check if only one of sinceId, untilId, sinceDate, untilDate specified
if (countIf(x => x != null, [ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate]) > 1) {
return rej('only one of sinceId, untilId, sinceDate, untilDate can be specified');
diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/src/server/api/endpoints/notes/local-timeline.ts
index 4446f52cdc..30d2762ad5 100644
--- a/src/server/api/endpoints/notes/local-timeline.ts
+++ b/src/server/api/endpoints/notes/local-timeline.ts
@@ -4,6 +4,7 @@ import Mute from '../../../../models/mute';
import { packMany } from '../../../../models/note';
import define from '../../define';
import { countIf } from '../../../../prelude/array';
+import fetchMeta from '../../../../misc/fetch-meta';
export const meta = {
desc: {
@@ -66,6 +67,13 @@ export const meta = {
};
export default define(meta, (ps, user) => new Promise(async (res, rej) => {
+ const meta = await fetchMeta();
+ if (meta.disableLocalTimeline) {
+ if (user == null || (!user.isAdmin && !user.isModerator)) {
+ return rej('local timeline disabled');
+ }
+ }
+
// Check if only one of sinceId, untilId, sinceDate, untilDate specified
if (countIf(x => x != null, [ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate]) > 1) {
return rej('only one of sinceId, untilId, sinceDate, untilDate can be specified');