Skip to content

Commit bbc0f1f

Browse files
Upgrade: Deprecates Mangement API controller for defunct our.umbraco.com version checker (#21011)
* fix: deprecates the upgrade checker * fix: removes any deprecated UI that no longer has a function for upgrade checks in the backoffice * chore: generates new api types * chore: deprecates types * chore: returns direct task * docs: explains deprecation * chore: deprecated model --------- Co-authored-by: leekelleher <leekelleher@gmail.com>
1 parent 0984420 commit bbc0f1f

File tree

22 files changed

+30
-301
lines changed

22 files changed

+30
-301
lines changed

src/Umbraco.Cms.Api.Management/Controllers/Server/UpgradeCheckServerController.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ namespace Umbraco.Cms.Api.Management.Controllers.Server;
1313

1414
[ApiVersion("1.0")]
1515
[Authorize(Policy = AuthorizationPolicies.RequireAdminAccess)]
16+
[Obsolete("Upgrade checks are no longer supported and this controller will be removed in Umbraco 19.")]
1617
public class UpgradeCheckServerController : ServerControllerBase
1718
{
1819
private readonly IUpgradeService _upgradeService;
@@ -27,6 +28,7 @@ public UpgradeCheckServerController(IUpgradeService upgradeService, IUmbracoVers
2728
[HttpGet("upgrade-check")]
2829
[MapToApiVersion("1.0")]
2930
[ProducesResponseType(typeof(UpgradeCheckResponseModel), StatusCodes.Status200OK)]
31+
[Obsolete("Upgrade checks are no longer supported and this endpoint will be removed in Umbraco 19.")]
3032
public async Task<IActionResult> UpgradeCheck(CancellationToken cancellationToken)
3133
{
3234
UpgradeResult upgradeResult = await _upgradeService.CheckUpgrade(_umbracoVersion.SemanticVersion);

src/Umbraco.Cms.Api.Management/OpenApi.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27854,6 +27854,7 @@
2785427854
"description": "The authenticated user does not have access to this resource"
2785527855
}
2785627856
},
27857+
"deprecated": true,
2785727858
"security": [
2785827859
{
2785927860
"Backoffice-User": [ ]

src/Umbraco.Cms.Api.Management/ViewModels/Server/UpgradeCheckResponseModel.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
namespace Umbraco.Cms.Api.Management.ViewModels.Server;
1+
namespace Umbraco.Cms.Api.Management.ViewModels.Server;
22

3+
[Obsolete("Upgrade checks are no longer supported and this model will be removed in Umbraco 19.")]
34
public class UpgradeCheckResponseModel
45
{
56
public required string Type { get; init; }

src/Umbraco.Core/Persistence/Repositories/IUpgradeCheckRepository.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Umbraco.Cms.Core.Persistence.Repositories;
44

5+
[Obsolete("Upgrade checks are no longer supported and this interface will be removed in Umbraco 19.")]
56
public interface IUpgradeCheckRepository
67
{
8+
[Obsolete("This method no longer has any function and will be removed in Umbraco 19.")]
79
Task<UpgradeResult> CheckUpgradeAsync(SemVersion version);
810
}
Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,16 @@
1-
using System.Text;
21
using Umbraco.Cms.Core.Semver;
32
using Umbraco.Cms.Core.Serialization;
43

54
namespace Umbraco.Cms.Core.Persistence.Repositories;
65

6+
[Obsolete("Upgrade checks are no longer supported and this repository will be removed in Umbraco 19.")]
77
public class UpgradeCheckRepository : IUpgradeCheckRepository
88
{
9-
private const string RestApiUpgradeChecklUrl = "https://our.umbraco.com/umbraco/api/UpgradeCheck/CheckUpgrade";
10-
private static HttpClient? _httpClient;
11-
private readonly IJsonSerializer _jsonSerializer;
12-
13-
public UpgradeCheckRepository(IJsonSerializer jsonSerializer) => _jsonSerializer = jsonSerializer;
14-
15-
public async Task<UpgradeResult> CheckUpgradeAsync(SemVersion version)
9+
public UpgradeCheckRepository(IJsonSerializer jsonSerializer)
1610
{
17-
try
18-
{
19-
_httpClient ??= new HttpClient { Timeout = TimeSpan.FromSeconds(1) };
20-
21-
using var content = new StringContent(_jsonSerializer.Serialize(new CheckUpgradeDto(version)), Encoding.UTF8, "application/json");
2211

23-
using HttpResponseMessage task = await _httpClient.PostAsync(RestApiUpgradeChecklUrl, content);
24-
var json = await task.Content.ReadAsStringAsync();
25-
UpgradeResult? result = _jsonSerializer.Deserialize<UpgradeResult>(json);
26-
27-
return result ?? new UpgradeResult("None", string.Empty, string.Empty);
28-
}
29-
catch (HttpRequestException)
30-
{
31-
// this occurs if the server for Our is down or cannot be reached
32-
return new UpgradeResult("None", string.Empty, string.Empty);
33-
}
3412
}
3513

36-
private sealed class CheckUpgradeDto
37-
{
38-
public CheckUpgradeDto(SemVersion version)
39-
{
40-
VersionMajor = version.Major;
41-
VersionMinor = version.Minor;
42-
VersionPatch = version.Patch;
43-
VersionComment = version.Prerelease;
44-
}
45-
46-
public int VersionMajor { get; }
47-
48-
public int VersionMinor { get; }
49-
50-
public int VersionPatch { get; }
51-
52-
public string VersionComment { get; }
53-
}
14+
[Obsolete("This method no longer has any function and will be removed in Umbraco 19.")]
15+
public Task<UpgradeResult> CheckUpgradeAsync(SemVersion version) => Task.FromResult(new UpgradeResult("None", string.Empty, string.Empty));
5416
}

src/Umbraco.Core/Services/IUpgradeService.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Umbraco.Cms.Core.Services;
44

5+
[Obsolete("Upgrade checks are no longer supported and this service will be removed in Umbraco 19.")]
56
public interface IUpgradeService
67
{
8+
[Obsolete("This method no longer has any function and will be removed in Umbraco 19.")]
79
Task<UpgradeResult> CheckUpgrade(SemVersion version);
810
}

src/Umbraco.Core/Services/UpgradeService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
namespace Umbraco.Cms.Core.Services;
55

6+
[Obsolete("Upgrade checks are no longer supported and this service will be removed in Umbraco 19.")]
67
public class UpgradeService : IUpgradeService
78
{
89
private readonly IUpgradeCheckRepository _upgradeCheckRepository;

src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-logo.element.ts

Lines changed: 3 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import { UMB_BACKOFFICE_CONTEXT } from '../backoffice.context.js';
2-
import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit';
3-
import { isCurrentUserAnAdmin } from '@umbraco-cms/backoffice/current-user';
2+
import { css, html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit';
43
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
54
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
65
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
7-
import { UMB_NEWVERSION_MODAL, UMB_SYSINFO_MODAL } from '@umbraco-cms/backoffice/sysinfo';
8-
import type { UmbServerUpgradeCheck } from '@umbraco-cms/backoffice/sysinfo';
6+
import { UMB_SYSINFO_MODAL } from '@umbraco-cms/backoffice/sysinfo';
97

108
/**
119
* The backoffice header logo element.
@@ -22,14 +20,6 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
2220
@state()
2321
private _version?: string;
2422

25-
@state()
26-
private _isUserAdmin = false;
27-
28-
@state()
29-
private _serverUpgradeCheck: UmbServerUpgradeCheck | null = null;
30-
31-
#backofficeContext?: typeof UMB_BACKOFFICE_CONTEXT.TYPE;
32-
3323
constructor() {
3424
super();
3525

@@ -42,23 +32,9 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
4232
},
4333
'_observeVersion',
4434
);
45-
46-
this.#backofficeContext = context;
4735
});
4836
}
4937

50-
protected override firstUpdated() {
51-
this.#isAdmin();
52-
}
53-
54-
async #isAdmin() {
55-
this._isUserAdmin = await isCurrentUserAnAdmin(this);
56-
57-
if (this._isUserAdmin) {
58-
this._serverUpgradeCheck = this.#backofficeContext ? await this.#backofficeContext.serverUpgradeCheck() : null;
59-
}
60-
}
61-
6238
override render() {
6339
return html`
6440
<uui-button
@@ -73,14 +49,7 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
7349
<umb-popover-layout>
7450
<div id="modal">
7551
<umb-app-logo id="logo" logo-type="logo"></umb-app-logo>
76-
<span>${this._version}</span>
77-
78-
${this._serverUpgradeCheck
79-
? html`<uui-button
80-
@click=${this.#openNewVersion}
81-
color="positive"
82-
label=${this.localize.term('general_newVersionAvailable')}></uui-button>`
83-
: ''}
52+
<span>${this._version ?? nothing}</span>
8453
8554
<a href="https://umbraco.com" target="_blank" rel="noopener">Umbraco.com</a>
8655
@@ -103,21 +72,6 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
10372
.catch(() => {});
10473
}
10574

106-
async #openNewVersion() {
107-
if (!this._serverUpgradeCheck) return;
108-
const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
109-
if (!modalManager) return;
110-
modalManager
111-
.open(this, UMB_NEWVERSION_MODAL, {
112-
data: {
113-
comment: this._serverUpgradeCheck.comment,
114-
downloadUrl: this._serverUpgradeCheck.url,
115-
},
116-
})
117-
.onSubmit()
118-
.catch(() => {});
119-
}
120-
12175
static override styles = [
12276
UmbTextStyles,
12377
css`

src/Umbraco.Web.UI.Client/src/assets/lang/da.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -995,7 +995,6 @@ export default {
995995
lastUpdated: 'Sidst opdateret',
996996
skipToMenu: 'Spring til menu',
997997
skipToContent: 'Spring til indhold',
998-
newVersionAvailable: 'Ny version tilgængelig',
999998
duration: (duration: string, date: Date | string, now: Date | string) => {
1000999
if (new Date(date).getTime() < new Date(now).getTime()) return `for ${duration} siden`;
10011000
return `om ${duration}`;

src/Umbraco.Web.UI.Client/src/assets/lang/de.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,6 @@ export default {
900900
header: 'Kopf',
901901
systemField: 'System Feld',
902902
lastUpdated: 'Zuletzt geändert',
903-
newVersionAvailable: 'Neue Version verfügbar',
904903
},
905904
colors: {
906905
black: 'Schwarz',

0 commit comments

Comments
 (0)