From e7f4542519515fd5b9b9b6dee1f7ee80e13bfa7d Mon Sep 17 00:00:00 2001 From: jfhs Date: Wed, 15 Mar 2017 01:31:29 +0100 Subject: [PATCH] fix: non-generic id check in PostAsync --- src/JsonApiDotNetCore/Controllers/JsonApiController.cs | 5 ++--- src/JsonApiDotNetCore/Models/IIdentifiable.cs | 1 + src/JsonApiDotNetCore/Models/Identifiable.cs | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/JsonApiDotNetCore/Controllers/JsonApiController.cs b/src/JsonApiDotNetCore/Controllers/JsonApiController.cs index 31a30bb454..c429db8012 100644 --- a/src/JsonApiDotNetCore/Controllers/JsonApiController.cs +++ b/src/JsonApiDotNetCore/Controllers/JsonApiController.cs @@ -137,9 +137,8 @@ public virtual async Task PostAsync([FromBody] T entity) _logger?.LogInformation($"Entity cannot be null returning 422"); return UnprocessableEntity(); } - - var stringId = entity.Id.ToString(); - if(stringId.Length > 0 && stringId != "0") + + if(!entity.IsIdEmpty()) return Forbidden(); await _entities.CreateAsync(entity); diff --git a/src/JsonApiDotNetCore/Models/IIdentifiable.cs b/src/JsonApiDotNetCore/Models/IIdentifiable.cs index daa25cd799..64d5515fd5 100644 --- a/src/JsonApiDotNetCore/Models/IIdentifiable.cs +++ b/src/JsonApiDotNetCore/Models/IIdentifiable.cs @@ -3,6 +3,7 @@ namespace JsonApiDotNetCore.Models public interface IIdentifiable { object Id { get; set; } + bool IsIdEmpty(); } public interface IIdentifiable : IIdentifiable diff --git a/src/JsonApiDotNetCore/Models/Identifiable.cs b/src/JsonApiDotNetCore/Models/Identifiable.cs index ead65bef28..ad5471bea1 100644 --- a/src/JsonApiDotNetCore/Models/Identifiable.cs +++ b/src/JsonApiDotNetCore/Models/Identifiable.cs @@ -12,5 +12,10 @@ object IIdentifiable.Id get { return Id; } set { Id = (T)value; } } + + public bool IsIdEmpty() + { + return Id != null; + } } }