diff --git a/src/Database/Models/ResourceModel.cs b/src/Database/Models/ResourceModel.cs
index 552bdc8b7531f4f13ce9277f4561a97442ae16af..4e45c103b4a08a6375a8539db6e660c85d772fe9 100644
--- a/src/Database/Models/ResourceModel.cs
+++ b/src/Database/Models/ResourceModel.cs
@@ -175,13 +175,13 @@ namespace Coscine.Database.Models
 
         public bool HasAccess(User user, Resource resource, params string[] allowedAccess)
         {
+            var projectId = new ProjectResourceModel().GetProjectForResource(resource.Id);
             IEnumerable<string> allowedAccessLabels = allowedAccess.Select(x => x.ToLower().Trim()).ToList();
             return DatabaseConnection.ConnectToDatabase((db) => (from relation in db.ProjectRoles
-                                                                 where relation.Project.ProjectResourceProjectIdIds != null && relation.Project.ProjectResourceProjectIdIds
-                                                                    .Any((projectResource) => projectResource.Resource.Id == resource.Id)
-                                                                     && relation.User.Id == user.Id
-                                                                     && allowedAccessLabels.Contains(relation.Role.DisplayName.ToLower())
-                                                                 select relation).Any());
+                                                                  where relation.ProjectId != projectId
+                                                                      && relation.User.Id == user.Id
+                                                                      && allowedAccessLabels.Contains(relation.Role.DisplayName.ToLower())
+                                                                  select relation).Any());
         }
 
         public int UpdateByObject(Resource resource, ResourceObject resourceObject)