parent
52225d703b
commit
8ce1d4d6a3
2 changed files with 17 additions and 1 deletions
|
@ -83,7 +83,9 @@ export default define(meta, async (ps, user) => {
|
||||||
if (ps.name) folder.name = ps.name;
|
if (ps.name) folder.name = ps.name;
|
||||||
|
|
||||||
if (ps.parentId !== undefined) {
|
if (ps.parentId !== undefined) {
|
||||||
if (ps.parentId === null) {
|
if (ps.parentId.equals(folder._id)) {
|
||||||
|
throw new ApiError(meta.errors.recursiveNesting);
|
||||||
|
} else if (ps.parentId === null) {
|
||||||
folder.parentId = null;
|
folder.parentId = null;
|
||||||
} else {
|
} else {
|
||||||
// Get parent folder
|
// Get parent folder
|
||||||
|
|
14
test/api.ts
14
test/api.ts
|
@ -1141,6 +1141,20 @@ describe('API', () => {
|
||||||
expect(res).have.status(400);
|
expect(res).have.status(400);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('フォルダが循環するような構造にできない(自身)', async(async () => {
|
||||||
|
const arisugawa = await signup({ username: 'arisugawa' });
|
||||||
|
const folderA = (await request('/drive/folders/create', {
|
||||||
|
name: 'test'
|
||||||
|
}, arisugawa)).body;
|
||||||
|
|
||||||
|
const res = await request('/drive/folders/update', {
|
||||||
|
folderId: folderA.id,
|
||||||
|
parentId: folderA.id
|
||||||
|
}, arisugawa);
|
||||||
|
|
||||||
|
expect(res).have.status(400);
|
||||||
|
}));
|
||||||
|
|
||||||
it('存在しない親フォルダを設定できない', async(async () => {
|
it('存在しない親フォルダを設定できない', async(async () => {
|
||||||
const alice = await signup({ username: 'alice' });
|
const alice = await signup({ username: 'alice' });
|
||||||
const folder = (await request('/drive/folders/create', {
|
const folder = (await request('/drive/folders/create', {
|
||||||
|
|
Loading…
Reference in a new issue