diff --git a/src/Tree/Controllers/TreeController.cs b/src/Tree/Controllers/TreeController.cs index 47f7b3878fb250d81c362b885d791ff92f03f717..67d6eae14487ff8d4ece1197dba26c3eb7ec75c8 100644 --- a/src/Tree/Controllers/TreeController.cs +++ b/src/Tree/Controllers/TreeController.cs @@ -1,4 +1,4 @@ -using Coscine.WaterbutlerHelper; +using Coscine.WaterbutlerHelper; using Coscine.WaterbutlerHelper.ReturnObjects; using Coscine.ApiCommons; using Coscine.ApiCommons.Factories; @@ -94,6 +94,10 @@ namespace Coscine.Api.Tree.Controllers var user = _authenticator.GetUser(); var check = CheckResourceIdAndPath(resourceId, path, out Resource resource); + if (check != null) + { + return check; + } if (resource.ApplicationProfile[^1] != '/') { @@ -102,14 +106,9 @@ namespace Coscine.Api.Tree.Controllers if (user == null || !_resourceModel.HasAccess(user, resource, UserRoles.Owner, UserRoles.Member)) { - return Forbid("User has no Access to this resource."); + return BadRequest("User has no Access to this resource."); } - - if (check != null) - { - return check; - } - + try { var resourceTypeOptions = _resourceModel.GetResourceTypeOptions(resource.Id); @@ -223,7 +222,12 @@ namespace Coscine.Api.Tree.Controllers if (user == null || !_resourceModel.HasAccess(user, resource, UserRoles.Owner, UserRoles.Member)) { - return Forbid("User is no project member!"); + return BadRequest("User is no project member!"); + } + + if (resource.Archived == "1") + { + return BadRequest("The resource is readonly!"); } if (resource.ApplicationProfile[^1] != '/')