public virtual async Task <ActionResult> PublishPackage(string id, string version) { var package = PackageService.FindPackageByIdAndVersionStrict(id, version); if (package == null) { return(new HttpStatusCodeWithBodyResult( HttpStatusCode.NotFound, String.Format(CultureInfo.CurrentCulture, Strings.PackageWithIdAndVersionNotFound, id, version))); } // Check if the current user's scopes allow listing/unlisting the current package ID var apiScopeEvaluationResult = EvaluateApiScope(ActionsRequiringPermissions.UnlistOrRelistPackage, package.PackageRegistration, NuGetScopes.PackageUnlist); if (!apiScopeEvaluationResult.IsSuccessful()) { return(GetHttpResultFromFailedApiScopeEvaluation(apiScopeEvaluationResult, id, version)); } if (package.PackageRegistration.IsLocked) { return(new HttpStatusCodeWithBodyResult( HttpStatusCode.Forbidden, string.Format(CultureInfo.CurrentCulture, Strings.PackageIsLocked, package.PackageRegistration.Id))); } await PackageService.MarkPackageListedAsync(package); IndexingService.UpdatePackage(package); return(new EmptyResult()); }
public virtual async Task <ActionResult> PublishPackage(string id, string version) { var package = PackageService.FindPackageByIdAndVersion(id, version); if (package == null) { return(new HttpStatusCodeWithBodyResult( HttpStatusCode.NotFound, String.Format(CultureInfo.CurrentCulture, Strings.PackageWithIdAndVersionNotFound, id, version))); } User user = GetCurrentUser(); if (!package.IsOwner(user)) { return(new HttpStatusCodeWithBodyResult(HttpStatusCode.Forbidden, String.Format(CultureInfo.CurrentCulture, Strings.ApiKeyNotAuthorized, "publish"))); } // Check if API key allows listing/unlisting the current package id if (!ApiKeyScopeAllows( subject: id, requestedActions: NuGetScopes.PackageUnlist)) { return(new HttpStatusCodeWithBodyResult(HttpStatusCode.Forbidden, Strings.ApiKeyNotAuthorized)); } await PackageService.MarkPackageListedAsync(package); IndexingService.UpdatePackage(package); return(new EmptyResult()); }
public virtual async Task <ActionResult> PublishPackage(string id, string version) { var package = PackageService.FindPackageByIdAndVersionStrict(id, version); if (package == null) { return(new HttpStatusCodeWithBodyResult( HttpStatusCode.NotFound, String.Format(CultureInfo.CurrentCulture, Strings.PackageWithIdAndVersionNotFound, id, version))); } // Check if API key allows listing/unlisting the current package id User user = GetCurrentUser(); if (!HasAnyScopeThatAllows(package.PackageRegistration, NuGetScopes.PackageUnlist)) { return(new HttpStatusCodeWithBodyResult(HttpStatusCode.Forbidden, Strings.ApiKeyNotAuthorized)); } if (package.PackageRegistration.IsLocked) { return(new HttpStatusCodeWithBodyResult( HttpStatusCode.Forbidden, string.Format(CultureInfo.CurrentCulture, Strings.PackageIsLocked, package.PackageRegistration.Id))); } await PackageService.MarkPackageListedAsync(package); IndexingService.UpdatePackage(package); return(new EmptyResult()); }
public virtual async Task <ActionResult> PublishPackage(string id, string version) { var package = PackageService.FindPackageByIdAndVersion(id, version); if (package == null) { return(new HttpStatusCodeWithBodyResult( HttpStatusCode.NotFound, String.Format(CultureInfo.CurrentCulture, Strings.PackageWithIdAndVersionNotFound, id, version))); } User user = GetCurrentUser(); if (!package.IsOwner(user)) { return(new HttpStatusCodeWithBodyResult(HttpStatusCode.Forbidden, String.Format(CultureInfo.CurrentCulture, Strings.ApiKeyNotAuthorized, "publish"))); } await PackageService.MarkPackageListedAsync(package); IndexingService.UpdatePackage(package); return(new EmptyResult()); }