Add server permission management

This commit is contained in:
jeffvli
2022-11-14 01:13:54 -08:00
parent 1babcc40ee
commit c54eea4382
16 changed files with 594 additions and 43 deletions
+4 -1
View File
@@ -138,7 +138,10 @@ const findMany = async (user: AuthUser, options?: { enabled?: boolean }) => {
},
// 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,
serverFolderPermissions: { some: { userId: user.id } },
},
],
},
},
+10 -4
View File
@@ -11,9 +11,10 @@ import { SortOrder } from '../types/types';
const findById = async (user: AuthUser, options: { id: string }) => {
const { id } = options;
if (!user.isAdmin && user.id !== id) {
throw ApiError.forbidden();
}
// Possibly restrict detail later if additional sensitive user data is added
// if (!user.isAdmin && user.id !== id) {
// throw ApiError.forbidden();
// }
const uniqueUser = await prisma.user.findUnique({
include: {
@@ -33,9 +34,14 @@ const findById = async (user: AuthUser, options: { id: string }) => {
const findMany = async () => {
const users = await prisma.user.findMany({
include: { files: true },
include: {
files: true,
serverFolderPermissions: true,
serverPermissions: true,
},
orderBy: [{ isAdmin: SortOrder.DESC }, { username: SortOrder.ASC }],
});
return users;
};