Merge branch 'develop' into swn

This commit is contained in:
tamaina 2021-09-18 21:19:23 +09:00
commit 18d6a663f8
11 changed files with 46 additions and 7 deletions

View file

@ -12,10 +12,13 @@
## 12.x.x (unreleased)
### Improvements
- リモートユーザーのDeleteアクティビティに対応
- ActivityPub: リモートユーザーのDeleteアクティビティに対応
- ActivityPub: add resolver check for blocked instance
- UIの改善
### Bugfixes
- アカウントデータのエクスポート/インポート処理ができない問題を修正
- アンテナの既読が付かない問題を修正
- popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正
## 12.90.1 (2021/09/05)

View file

@ -104,6 +104,12 @@ Related projects
- [misskey.js](https://github.com/misskey-dev/misskey.js) - Misskey SDK for JavaScript
- [mfm.js](https://github.com/misskey-dev/mfm.js) - MFM parser
Sponsors
----------------------------------------------------------------
<div align="center">
<a class="rss3" title="RSS3" href="https://rss3.io/" target="_blank" style="display: inline-block;"><img src="https://rss3.io/assets/images/Logo.svg" alt="RSS3" style="display: inline-block; height: 60px;"></a>
</div>
:heart: Backers
----------------------------------------------------------------
<!-- PATREON_START -->

View file

@ -51,6 +51,18 @@ export default defineComponent({
icon: this.src === 'local' ? 'fas fa-comments' : this.src === 'social' ? 'fas fa-share-alt' : this.src === 'global' ? 'fas fa-globe' : 'fas fa-home',
bg: 'var(--bg)',
actions: [{
icon: 'fas fa-list-ul',
text: this.$ts.lists,
handler: this.chooseList
}, {
icon: 'fas fa-satellite',
text: this.$ts.antennas,
handler: this.chooseAntenna
}, {
icon: 'fas fa-satellite-dish',
text: this.$ts.channel,
handler: this.chooseChannel
}, {
icon: 'fas fa-calendar-alt',
text: this.$ts.jumpToSpecifiedDate,
handler: this.timetravel

View file

@ -4,7 +4,7 @@ import * as fs from 'fs';
import { queueLogger } from '../../logger';
import addFile from '@/services/drive/add-file';
import dateFormat from 'dateformat';
import * as dateFormat from 'dateformat';
import { getFullApAccount } from '@/misc/convert-host';
import { Users, Blockings } from '@/models/index';
import { MoreThan } from 'typeorm';

View file

@ -4,7 +4,7 @@ import * as fs from 'fs';
import { queueLogger } from '../../logger';
import addFile from '@/services/drive/add-file';
import dateFormat from 'dateformat';
import * as dateFormat from 'dateformat';
import { getFullApAccount } from '@/misc/convert-host';
import { Users, Followings } from '@/models/index';
import { MoreThan } from 'typeorm';

View file

@ -4,7 +4,7 @@ import * as fs from 'fs';
import { queueLogger } from '../../logger';
import addFile from '@/services/drive/add-file';
import dateFormat from 'dateformat';
import * as dateFormat from 'dateformat';
import { getFullApAccount } from '@/misc/convert-host';
import { Users, Mutings } from '@/models/index';
import { MoreThan } from 'typeorm';

View file

@ -4,7 +4,7 @@ import * as fs from 'fs';
import { queueLogger } from '../../logger';
import addFile from '@/services/drive/add-file';
import dateFormat from 'dateformat';
import * as dateFormat from 'dateformat';
import { Users, Notes, Polls } from '@/models/index';
import { MoreThan } from 'typeorm';
import { Note } from '@/models/entities/note';

View file

@ -4,7 +4,7 @@ import * as fs from 'fs';
import { queueLogger } from '../../logger';
import addFile from '@/services/drive/add-file';
import dateFormat from 'dateformat';
import * as dateFormat from 'dateformat';
import { getFullApAccount } from '@/misc/convert-host';
import { Users, UserLists, UserListJoinings } from '@/models/index';
import { In } from 'typeorm';

View file

@ -4,6 +4,8 @@ import { ILocalUser } from '@/models/entities/user';
import { getInstanceActor } from '@/services/instance-actor';
import { signedGet } from './request';
import { IObject, isCollectionOrOrderedCollection, ICollection, IOrderedCollection } from './type';
import { fetchMeta } from '@/misc/fetch-meta';
import { extractDbHost } from '@/misc/convert-host';
export default class Resolver {
private history: Set<string>;
@ -44,6 +46,12 @@ export default class Resolver {
this.history.add(value);
const meta = await fetchMeta();
const host = extractDbHost(value);
if (meta.blockedHosts.includes(host)) {
throw new Error('Instance is blocked');
}
if (config.signToActivityPubGet && !this.user) {
this.user = await getInstanceActor();
}

View file

@ -40,7 +40,12 @@ export default async (endpoint: string, user: User | null | undefined, token: Ac
}
if (ep.meta.requireCredential && user!.isSuspended) {
throw new ApiError(accessDenied, { reason: 'Your account has been suspended.' });
throw new ApiError({
message: 'Your account has been suspended.',
code: 'YOUR_ACCOUNT_SUSPENDED',
id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370',
httpStatusCode: 403
});
}
if (ep.meta.requireAdmin && !user!.isAdmin) {

View file

@ -1,6 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import readNote from '@/services/note/read';
import { Antennas, Notes, AntennaNotes } from '@/models/index';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { generateVisibilityQuery } from '../../common/generate-visibility-query';
@ -84,5 +85,9 @@ export default define(meta, async (ps, user) => {
.take(ps.limit!)
.getMany();
if (notes.length > 0) {
readNote(user.id, notes);
}
return await Notes.packMany(notes, user);
});