diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-12-29 02:55:46 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-12-29 02:55:46 +0900 |
| commit | a3493c4f07240b1957cb4fe8c17eb79747846bc6 (patch) | |
| tree | 0c97fc6a7e16401a05a3b79dede4893242fadc73 /src | |
| parent | Make autoAcceptFollowed default (diff) | |
| download | sharkey-a3493c4f07240b1957cb4fe8c17eb79747846bc6.tar.gz sharkey-a3493c4f07240b1957cb4fe8c17eb79747846bc6.tar.bz2 sharkey-a3493c4f07240b1957cb4fe8c17eb79747846bc6.zip | |
Privateの公開範囲を廃止
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/app/common/views/components/note-header.vue | 3 | ||||
| -rw-r--r-- | src/client/app/common/views/components/renote.vue | 3 | ||||
| -rw-r--r-- | src/client/app/common/views/components/visibility-chooser.vue | 8 | ||||
| -rw-r--r-- | src/client/app/desktop/views/components/post-form.vue | 5 | ||||
| -rw-r--r-- | src/client/app/mobile/views/components/note-detail.vue | 3 | ||||
| -rw-r--r-- | src/client/app/mobile/views/components/post-form.vue | 5 | ||||
| -rw-r--r-- | src/models/note.ts | 5 | ||||
| -rw-r--r-- | src/remote/activitypub/kernel/announce/note.ts | 2 | ||||
| -rw-r--r-- | src/server/api/endpoints/notes/create.ts | 5 | ||||
| -rw-r--r-- | src/services/note/create.ts | 9 |
10 files changed, 18 insertions, 30 deletions
diff --git a/src/client/app/common/views/components/note-header.vue b/src/client/app/common/views/components/note-header.vue index 664cb308e7..895313def1 100644 --- a/src/client/app/common/views/components/note-header.vue +++ b/src/client/app/common/views/components/note-header.vue @@ -18,8 +18,7 @@ <span class="visibility" v-if="note.visibility != 'public'"> <fa v-if="note.visibility == 'home'" icon="home"/> <fa v-if="note.visibility == 'followers'" icon="unlock"/> - <fa v-if="note.visibility == 'specified'" icon="envelope"/> - <fa v-if="note.visibility == 'private'" icon="lock"/> + <fa v-if="note.visibility == 'specified'" icon="lock"/> </span> <span class="localOnly" v-if="note.localOnly == true"><fa icon="heart"/></span> </div> diff --git a/src/client/app/common/views/components/renote.vue b/src/client/app/common/views/components/renote.vue index eae7bd122d..4efac8b09d 100644 --- a/src/client/app/common/views/components/renote.vue +++ b/src/client/app/common/views/components/renote.vue @@ -13,8 +13,7 @@ <span class="visibility" v-if="note.visibility != 'public'"> <fa v-if="note.visibility == 'home'" icon="home"/> <fa v-if="note.visibility == 'followers'" icon="unlock"/> - <fa v-if="note.visibility == 'specified'" icon="envelope"/> - <fa v-if="note.visibility == 'private'" icon="lock"/> + <fa v-if="note.visibility == 'specified'" icon="lock"/> </span> <span class="localOnly" v-if="note.localOnly == true"><fa icon="heart"/></span> </div> diff --git a/src/client/app/common/views/components/visibility-chooser.vue b/src/client/app/common/views/components/visibility-chooser.vue index b7cc56103c..66d617befc 100644 --- a/src/client/app/common/views/components/visibility-chooser.vue +++ b/src/client/app/common/views/components/visibility-chooser.vue @@ -23,18 +23,12 @@ </div> </div> <div @click="choose('specified')" :class="{ active: v == 'specified' }"> - <div><fa icon="envelope"/></div> + <div><fa icon="lock"/></div> <div> <span>{{ $t('specified') }}</span> <span>{{ $t('specified-desc') }}</span> </div> </div> - <div @click="choose('private')" :class="{ active: v == 'private' }"> - <div><fa icon="lock"/></div> - <div> - <span>{{ $t('private') }}</span> - </div> - </div> <div @click="choose('local-public')" :class="{ active: v == 'local-public' }"> <div><fa icon="globe"/></div> <div> diff --git a/src/client/app/desktop/views/components/post-form.vue b/src/client/app/desktop/views/components/post-form.vue index 7e402f2b59..7ed8cf02ce 100644 --- a/src/client/app/desktop/views/components/post-form.vue +++ b/src/client/app/desktop/views/components/post-form.vue @@ -50,8 +50,7 @@ <span v-if="visibility === 'public'"><fa icon="globe"/></span> <span v-if="visibility === 'home'"><fa icon="home"/></span> <span v-if="visibility === 'followers'"><fa icon="unlock"/></span> - <span v-if="visibility === 'specified'"><fa icon="envelope"/></span> - <span v-if="visibility === 'private'"><fa icon="lock"/></span> + <span v-if="visibility === 'specified'"><fa icon="lock"/></span> </button> <p class="text-count" :class="{ over: trimmedLength(text) > maxNoteTextLength }">{{ maxNoteTextLength - trimmedLength(text) }}</p> <ui-button primary :wait="posting" class="submit" :disabled="!canPost" @click="post"> @@ -212,7 +211,7 @@ export default Vue.extend({ this.applyVisibility(this.$store.state.settings.rememberNoteVisibility ? (this.$store.state.device.visibility || this.$store.state.settings.defaultNoteVisibility) : this.$store.state.settings.defaultNoteVisibility); // 公開以外へのリプライ時は元の公開範囲を引き継ぐ - if (this.reply && ['home', 'followers', 'specified', 'private'].includes(this.reply.visibility)) { + if (this.reply && ['home', 'followers', 'specified'].includes(this.reply.visibility)) { this.visibility = this.reply.visibility; } diff --git a/src/client/app/mobile/views/components/note-detail.vue b/src/client/app/mobile/views/components/note-detail.vue index 61274a246a..72f522bbca 100644 --- a/src/client/app/mobile/views/components/note-detail.vue +++ b/src/client/app/mobile/views/components/note-detail.vue @@ -54,8 +54,7 @@ <span class="visibility" v-if="appearNote.visibility != 'public'"> <fa v-if="appearNote.visibility == 'home'" icon="home"/> <fa v-if="appearNote.visibility == 'followers'" icon="unlock"/> - <fa v-if="appearNote.visibility == 'specified'" icon="envelope"/> - <fa v-if="appearNote.visibility == 'private'" icon="lock"/> + <fa v-if="appearNote.visibility == 'specified'" icon="lock"/> </span> <span class="localOnly" v-if="appearNote.localOnly == true"><fa icon="heart"/></span> </div> diff --git a/src/client/app/mobile/views/components/post-form.vue b/src/client/app/mobile/views/components/post-form.vue index 282ecc387c..599547858d 100644 --- a/src/client/app/mobile/views/components/post-form.vue +++ b/src/client/app/mobile/views/components/post-form.vue @@ -41,8 +41,7 @@ <span v-if="visibility === 'public'"><fa icon="globe"/></span> <span v-if="visibility === 'home'"><fa icon="home"/></span> <span v-if="visibility === 'followers'"><fa icon="unlock"/></span> - <span v-if="visibility === 'specified'"><fa icon="envelope"/></span> - <span v-if="visibility === 'private'"><fa icon="lock"/></span> + <span v-if="visibility === 'specified'"><fa icon="lock"/></span> </button> </footer> <input ref="file" class="file" type="file" multiple="multiple" @change="onChangeFile"/> @@ -202,7 +201,7 @@ export default Vue.extend({ this.applyVisibility(this.$store.state.settings.rememberNoteVisibility ? (this.$store.state.device.visibility || this.$store.state.settings.defaultNoteVisibility) : this.$store.state.settings.defaultNoteVisibility); // 公開以外へのリプライ時は元の公開範囲を引き継ぐ - if (this.reply && ['home', 'followers', 'specified', 'private'].includes(this.reply.visibility)) { + if (this.reply && ['home', 'followers', 'specified'].includes(this.reply.visibility)) { this.visibility = this.reply.visibility; } diff --git a/src/models/note.ts b/src/models/note.ts index f14f4c133d..f334970750 100644 --- a/src/models/note.ts +++ b/src/models/note.ts @@ -67,9 +67,8 @@ export type INote = { * home ... ホームタイムライン(ユーザーページのタイムライン含む)のみに流す * followers ... フォロワーのみ * specified ... visibleUserIds で指定したユーザーのみ - * private ... 自分のみ */ - visibility: 'public' | 'home' | 'followers' | 'specified' | 'private'; + visibility: 'public' | 'home' | 'followers' | 'specified'; visibleUserIds: mongo.ObjectID[]; @@ -106,7 +105,7 @@ export type INote = { export const hideNote = async (packedNote: any, meId: mongo.ObjectID) => { let hide = false; - // visibility が private かつ投稿者のIDが自分のIDではなかったら非表示 + // visibility が private かつ投稿者のIDが自分のIDではなかったら非表示(後方互換性のため) if (packedNote.visibility == 'private' && (meId == null || !meId.equals(packedNote.userId))) { hide = true; } diff --git a/src/remote/activitypub/kernel/announce/note.ts b/src/remote/activitypub/kernel/announce/note.ts index 19ea6306e3..5eaeaf7918 100644 --- a/src/remote/activitypub/kernel/announce/note.ts +++ b/src/remote/activitypub/kernel/announce/note.ts @@ -52,7 +52,7 @@ export default async function(resolver: Resolver, actor: IRemoteUser, activity: }); } -type visibility = 'public' | 'home' | 'followers' | 'specified' | 'private'; +type visibility = 'public' | 'home' | 'followers' | 'specified'; function getVisibility(to: string[], cc: string[], actor: IRemoteUser): visibility { const PUBLIC = 'https://www.w3.org/ns/activitystreams#Public'; diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts index e8c37664f5..ec84d64975 100644 --- a/src/server/api/endpoints/notes/create.ts +++ b/src/server/api/endpoints/notes/create.ts @@ -247,6 +247,11 @@ export default define(meta, (ps, user, app) => new Promise(async (res, rej) => { return rej('text, fileIds, renoteId or poll is required'); } + // 後方互換性のため + if (ps.visibility == 'private') { + ps.visibility = 'specified'; + } + // 投稿を作成 create(user, { createdAt: new Date(), diff --git a/src/services/note/create.ts b/src/services/note/create.ts index 20fa4a8d5b..876097852b 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -133,11 +133,6 @@ export default async (user: IUser, data: Option, silent = false) => new Promise< return rej('Renote target is not public or home'); } - // リプライ対象が自分以外の非公開の投稿なら禁止 - if (data.reply && data.reply.visibility == 'private' && !data.reply.userId.equals(user._id)) { - return rej('Reply target is private of others'); - } - // ローカルのみをRenoteしたらローカルのみにする if (data.renote && data.renote.localOnly) { data.localOnly = true; @@ -282,7 +277,7 @@ export default async (user: IUser, data: Option, silent = false) => new Promise< const noteActivity = await renderActivity(data, note); - if (isLocalUser(user) && note.visibility != 'private') { + if (isLocalUser(user)) { deliverNoteToMentionedRemoteUsers(mentionedUsers, user, noteActivity); } @@ -369,7 +364,7 @@ async function publish(user: IUser, note: INote, noteObj: any, reply: INote, ren deliver(user, noteActivity, renote._user.inbox); } - if (['private', 'followers', 'specified'].includes(note.visibility)) { + if (['followers', 'specified'].includes(note.visibility)) { const detailPackedNote = await pack(note, user, { detail: true }); |