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)