diff --git a/web/core/layouts/auth-layout/project-wrapper.tsx b/web/core/layouts/auth-layout/project-wrapper.tsx index 1c7e241d9e..11848476a2 100644 --- a/web/core/layouts/auth-layout/project-wrapper.tsx +++ b/web/core/layouts/auth-layout/project-wrapper.tsx @@ -105,12 +105,12 @@ export const ProjectAuthWrapper: FC = observer((props) => { // derived values const projectExists = projectId ? getProjectById(projectId.toString()) : null; - const hasPermissionToCurrentProject = projectId - ? allowPermissions( - [EUserPermissions.ADMIN, EUserPermissions.MEMBER, EUserPermissions.GUEST], - EUserPermissionsLevel.PROJECT - ) - : undefined; + const hasPermissionToCurrentProject = allowPermissions( + [EUserPermissions.ADMIN, EUserPermissions.MEMBER, EUserPermissions.GUEST], + EUserPermissionsLevel.PROJECT, + workspaceSlug.toString(), + projectId.toString() + ); // check if the project member apis is loading if (!projectMemberInfo && projectId && hasPermissionToCurrentProject === null) diff --git a/web/core/store/user/permissions.store.ts b/web/core/store/user/permissions.store.ts index 581d65bdd8..ba1211b0f1 100644 --- a/web/core/store/user/permissions.store.ts +++ b/web/core/store/user/permissions.store.ts @@ -243,9 +243,10 @@ export class UserPermissionStore implements IUserPermissionStore { joinProject = async (workspaceSlug: string, projectId: string): Promise => { try { const response = await userService.joinProject(workspaceSlug, [projectId]); + const projectMemberRole = this.workspaceInfoBySlug(workspaceSlug)?.role ?? EUserPermissions.MEMBER; if (response) { runInAction(() => { - set(this.workspaceProjectsPermissions, [workspaceSlug, projectId], response); + set(this.workspaceProjectsPermissions, [workspaceSlug, projectId], projectMemberRole); }); } return response; @@ -267,6 +268,7 @@ export class UserPermissionStore implements IUserPermissionStore { runInAction(() => { unset(this.workspaceProjectsPermissions, [workspaceSlug, projectId]); unset(this.projectUserInfo, [workspaceSlug, projectId]); + unset(this.store.projectRoot.project.projectMap, [projectId]); }); } catch (error) { console.error("Error user leaving the project", error);