feat: add workspace management features including member invitations and role updates

- Implemented API endpoints for managing workspace members (GET, POST, PATCH, DELETE).
- Added workspace creation and retrieval functionalities.
- Enhanced project model to associate with workspaces.
- Updated project member roles and access control logic.
- Created sign-out page and updated authentication flow.
- Modified header to include navigation to workspaces.
- Updated Prisma schema to include workspace and member models.
- Seed script updated to create demo workspaces and associated members.
This commit is contained in:
Yusuf İpek
2026-02-07 07:41:12 +03:00
parent d90ce4e1f6
commit 6e95f667e3
28 changed files with 2891 additions and 138 deletions
+2 -3
View File
@@ -64,7 +64,7 @@ export async function POST(request: NextRequest, { params }: RouteParams) {
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
}
// Check project access (must be owner, admin, or editor)
// Check project access (must be owner or admin)
const project = await db.project.findUnique({
where: { id: projectId },
include: { members: { where: { userId: session.user.id } } },
@@ -77,8 +77,7 @@ export async function POST(request: NextRequest, { params }: RouteParams) {
const isOwner = project.ownerId === session.user.id;
const membership = project.members[0];
const canEdit = isOwner ||
membership?.role === ProjectMemberRole.ADMIN ||
membership?.role === ProjectMemberRole.EDITOR;
membership?.role === ProjectMemberRole.ADMIN;
if (!canEdit) {
return NextResponse.json({ error: 'Access denied' }, { status: 403 });