mirror of
https://github.com/jeffvli/feishin.git
synced 2026-06-12 23:32:19 +02:00
Retrieve serverfolders by permission
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { ServerType, TaskType } from '@prisma/client';
|
import { ServerPermissionType, ServerType, TaskType } from '@prisma/client';
|
||||||
import { SortOrder } from '@/types/types';
|
import { SortOrder } from '@/types/types';
|
||||||
import { helpers } from '../helpers';
|
import { helpers } from '../helpers';
|
||||||
import { prisma } from '../lib';
|
import { prisma } from '../lib';
|
||||||
@@ -116,13 +116,7 @@ const findMany = async (user: AuthUser, options?: { enabled?: boolean }) => {
|
|||||||
orderBy: { createdAt: SortOrder.ASC },
|
orderBy: { createdAt: SortOrder.ASC },
|
||||||
where: { userId: user.id },
|
where: { userId: user.id },
|
||||||
},
|
},
|
||||||
serverUrls: {
|
serverUrls: true,
|
||||||
include: {
|
|
||||||
userServerUrls: {
|
|
||||||
where: { userId: user.id },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
orderBy: { createdAt: SortOrder.ASC },
|
orderBy: { createdAt: SortOrder.ASC },
|
||||||
});
|
});
|
||||||
@@ -133,8 +127,17 @@ const findMany = async (user: AuthUser, options?: { enabled?: boolean }) => {
|
|||||||
serverFolders: {
|
serverFolders: {
|
||||||
orderBy: { name: SortOrder.ASC },
|
orderBy: { name: SortOrder.ASC },
|
||||||
where: {
|
where: {
|
||||||
AND: [
|
OR: [
|
||||||
{ id: { in: user.flatServerFolderPermissions } },
|
// Show all folders if user has server admin permissions
|
||||||
|
{
|
||||||
|
server: {
|
||||||
|
serverPermissions: {
|
||||||
|
some: { type: ServerPermissionType.ADMIN, userId: user.id },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
// If not admin, only show folders the user has permissions for
|
||||||
|
{ serverFolderPermissions: { some: { userId: user.id } } },
|
||||||
{ enabled: options?.enabled ? true : undefined },
|
{ enabled: options?.enabled ? true : undefined },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -146,7 +149,7 @@ const findMany = async (user: AuthUser, options?: { enabled?: boolean }) => {
|
|||||||
serverUrls: true,
|
serverUrls: true,
|
||||||
},
|
},
|
||||||
orderBy: { createdAt: SortOrder.ASC },
|
orderBy: { createdAt: SortOrder.ASC },
|
||||||
where: { id: { in: user.flatServerPermissions } },
|
where: { serverPermissions: { some: { userId: user.id } } },
|
||||||
});
|
});
|
||||||
|
|
||||||
return servers;
|
return servers;
|
||||||
|
|||||||
Reference in New Issue
Block a user