fix(backend): 名前を空白文字列だけにできる問題を修正 (#14119)
* fix(backend): 名前を空白文字列だけにできる問題を修正
* Update Changelog
* fix test
* Unicodeを含める
* fix
* ユーザー名がUnicode制御文字とスペースのみで構成される場合はnullに
* Revert "ユーザー名がUnicode制御文字とスペースのみで構成される場合はnullに"
This reverts commit 6c752a69c0
.
* [ci skip] changelog typo
This commit is contained in:
parent
f119f8c2cc
commit
9ef6c4716c
|
@ -29,6 +29,8 @@
|
||||||
- Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正
|
- Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正
|
||||||
- Fix: 空文字列のリアクションはフォールバックされるように
|
- Fix: 空文字列のリアクションはフォールバックされるように
|
||||||
- Fix: リノートにリアクションできないように
|
- Fix: リノートにリアクションできないように
|
||||||
|
- Fix: ユーザー名の前後に空白文字列がある場合は省略するように
|
||||||
|
- Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正
|
||||||
|
|
||||||
### Misskey.js
|
### Misskey.js
|
||||||
- Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応)
|
- Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応)
|
||||||
|
|
|
@ -257,7 +257,14 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
||||||
|
|
||||||
const profile = await this.userProfilesRepository.findOneByOrFail({ userId: user.id });
|
const profile = await this.userProfilesRepository.findOneByOrFail({ userId: user.id });
|
||||||
|
|
||||||
if (ps.name !== undefined) updates.name = ps.name;
|
if (ps.name !== undefined) {
|
||||||
|
if (ps.name === null) {
|
||||||
|
updates.name = null;
|
||||||
|
} else {
|
||||||
|
const trimmedName = ps.name.trim();
|
||||||
|
updates.name = trimmedName === '' ? null : trimmedName;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (ps.description !== undefined) profileUpdates.description = ps.description;
|
if (ps.description !== undefined) profileUpdates.description = ps.description;
|
||||||
if (ps.lang !== undefined) profileUpdates.lang = ps.lang;
|
if (ps.lang !== undefined) profileUpdates.lang = ps.lang;
|
||||||
if (ps.location !== undefined) profileUpdates.location = ps.location;
|
if (ps.location !== undefined) profileUpdates.location = ps.location;
|
||||||
|
|
|
@ -117,12 +117,21 @@ describe('Endpoints', () => {
|
||||||
assert.strictEqual(res.body.birthday, myBirthday);
|
assert.strictEqual(res.body.birthday, myBirthday);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('名前を空白にできる', async () => {
|
test('名前を空白のみにした場合nullになる', async () => {
|
||||||
const res = await api('i/update', {
|
const res = await api('i/update', {
|
||||||
name: ' ',
|
name: ' ',
|
||||||
}, alice);
|
}, alice);
|
||||||
assert.strictEqual(res.status, 200);
|
assert.strictEqual(res.status, 200);
|
||||||
assert.strictEqual(res.body.name, ' ');
|
assert.strictEqual(res.body.name, null);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('名前の前後に空白(ホワイトスペース)を入れてもトリムされる', async () => {
|
||||||
|
const res = await api('i/update', {
|
||||||
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#white_space
|
||||||
|
name: ' あ い う \u0009\u000b\u000c\u0020\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff',
|
||||||
|
}, alice);
|
||||||
|
assert.strictEqual(res.status, 200);
|
||||||
|
assert.strictEqual(res.body.name, 'あ い う');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('誕生日の設定を削除できる', async () => {
|
test('誕生日の設定を削除できる', async () => {
|
||||||
|
|
Loading…
Reference in New Issue