diff --git a/src/modules/project/pages/ProjectPage.vue b/src/modules/project/pages/ProjectPage.vue
index d0ea4d4d4a510fceb1292c331736ef234028f541..92c9d3033616235426b180be44df639d9577e4c9 100644
--- a/src/modules/project/pages/ProjectPage.vue
+++ b/src/modules/project/pages/ProjectPage.vue
@@ -10,11 +10,12 @@
             <div class="list">
               <b-card-group id="card-deck" deck>
                 <CoscineCard
+                  v-if="!isLoadingRoles"
                   id="addResource"
                   :title="$t('page.project.addResource')"
                   type="create"
                   :to="toCreateResource()"
-                  :disabled="!isEmailValid"
+                  :disabled="!isEmailValid || isGuest"
                   @open-card="openCreateResource($event)"
                 />
                 <b-tooltip target="addResource">
@@ -48,10 +49,10 @@
                 />
                 <!-- Loading Card Placeholder -->
                 <CoscineCard
-                  v-if="!resources"
+                  v-if="!resources || isLoadingRoles"
                   :to="{}"
                   :title="$t('default.loading')"
-                  :is-loading="!resources"
+                  :is-loading="true"
                   :disabled="true"
                 />
               </b-card-group>
@@ -66,17 +67,19 @@
             <div class="list">
               <b-card-group id="card-deck" deck>
                 <CoscineCard
+                  v-if="!isLoadingRoles"
                   :title="$t('page.listProjects.addProject')"
                   type="create"
                   :to="toCreateSubProject()"
+                  :disabled="isGuest"
                   @open-card="openCreateProject($event)"
                 />
                 <!-- Loading Card Placeholder -->
                 <CoscineCard
-                  v-if="!subProjects"
+                  v-if="!subProjects || isLoadingRoles"
                   :to="{}"
                   :title="$t('default.loading')"
-                  :is-loading="!subProjects"
+                  :is-loading="true"
                 />
                 <!-- Content Cards -->
                 <CoscineCard
@@ -156,6 +159,9 @@ export default defineComponent({
     isGuest(): boolean | undefined {
       return this.projectStore.currentUserRoleIsGuest;
     },
+    isLoadingRoles(): boolean {
+      return this.projectStore.currentUserRole ? false : true;
+    },
     user(): UserObject | null {
       return this.userStore.user;
     },
@@ -192,10 +198,12 @@ export default defineComponent({
       return this.isGuest ? null : route;
     },
     openCreateProject(to: RawLocation) {
-      this.$router.push(to);
+      if (!this.isGuest) {
+        this.$router.push(to);
+      }
     },
     openCreateResource(to: RawLocation) {
-      if (this.isEmailValid) {
+      if (this.isEmailValid && !this.isGuest) {
         // Set current resource ID to null
         this.resourceStore.currentId = null;
         this.$router.push(to);
@@ -249,7 +257,6 @@ export default defineComponent({
   /* Prevents Members list to become wider */
   max-width: 27rem;
 }
-
 .coscine_card:hover {
   background-color: var(--coscine_card-background-color--hover);
 }