Merge remote-tracking branch 'origin/v8/dev' into netcore/dev
# Conflicts: # src/Umbraco.Core/Umbraco.Core.csproj # src/Umbraco.Infrastructure/Runtime/CoreInitialComposer.cs # src/Umbraco.Web/Editors/UpdateCheckController.cs # src/Umbraco.Web/Install/InstallHelper.cs
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Umbraco.Core.Models
|
||||
{
|
||||
public class InstallLog
|
||||
{
|
||||
public Guid InstallId { get; }
|
||||
public bool IsUpgrade { get; set; }
|
||||
public bool InstallCompleted { get; set; }
|
||||
public DateTime Timestamp { get; set; }
|
||||
public int VersionMajor { get; }
|
||||
public int VersionMinor { get; }
|
||||
public int VersionPatch { get; }
|
||||
public string VersionComment { get; }
|
||||
public string Error { get; }
|
||||
public string UserAgent { get; }
|
||||
public string DbProvider { get; set; }
|
||||
|
||||
public InstallLog(Guid installId, bool isUpgrade, bool installCompleted, DateTime timestamp, int versionMajor, int versionMinor, int versionPatch, string versionComment, string error, string userAgent, string dbProvider)
|
||||
{
|
||||
InstallId = installId;
|
||||
IsUpgrade = isUpgrade;
|
||||
InstallCompleted = installCompleted;
|
||||
Timestamp = timestamp;
|
||||
VersionMajor = versionMajor;
|
||||
VersionMinor = versionMinor;
|
||||
VersionPatch = versionPatch;
|
||||
VersionComment = versionComment;
|
||||
Error = error;
|
||||
UserAgent = userAgent;
|
||||
DbProvider = dbProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Umbraco.Core.Models;
|
||||
|
||||
namespace Umbraco.Core.Persistence.Repositories
|
||||
{
|
||||
public interface IInstallationRepository
|
||||
{
|
||||
Task SaveInstallLogAsync(InstallLog installLog);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System.Threading.Tasks;
|
||||
using Semver;
|
||||
using Umbraco.Core.Models;
|
||||
|
||||
namespace Umbraco.Core.Persistence.Repositories
|
||||
{
|
||||
public interface IUpgradeCheckRepository
|
||||
{
|
||||
Task<UpgradeResult> CheckUpgradeAsync(SemVersion version);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Formatting;
|
||||
using System.Threading.Tasks;
|
||||
using Umbraco.Core.Models;
|
||||
|
||||
namespace Umbraco.Core.Persistence.Repositories.Implement
|
||||
{
|
||||
internal class InstallationRepository : IInstallationRepository
|
||||
{
|
||||
private static HttpClient _httpClient;
|
||||
private const string RestApiInstallUrl = "https://our.umbraco.com/umbraco/api/Installation/Install";
|
||||
|
||||
|
||||
public async Task SaveInstallLogAsync(InstallLog installLog)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_httpClient == null)
|
||||
_httpClient = new HttpClient();
|
||||
|
||||
await _httpClient.PostAsync(RestApiInstallUrl, installLog, new JsonMediaTypeFormatter());
|
||||
}
|
||||
// this occurs if the server for Our is down or cannot be reached
|
||||
catch (HttpRequestException)
|
||||
{ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Formatting;
|
||||
using System.Threading.Tasks;
|
||||
using Semver;
|
||||
using Umbraco.Core.Models;
|
||||
|
||||
namespace Umbraco.Core.Persistence.Repositories.Implement
|
||||
{
|
||||
internal class UpgradeCheckRepository : IUpgradeCheckRepository
|
||||
{
|
||||
private static HttpClient _httpClient;
|
||||
private const string RestApiUpgradeChecklUrl = "https://our.umbraco.com/umbraco/api/UpgradeCheck/CheckUpgrade";
|
||||
|
||||
|
||||
public async Task<UpgradeResult> CheckUpgradeAsync(SemVersion version)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_httpClient == null)
|
||||
_httpClient = new HttpClient();
|
||||
|
||||
var task = await _httpClient.PostAsync(RestApiUpgradeChecklUrl, new CheckUpgradeDto(version), new JsonMediaTypeFormatter());
|
||||
var result = await task.Content.ReadAsAsync<UpgradeResult>();
|
||||
|
||||
return result ?? new UpgradeResult("None", "", "");
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
// this occurs if the server for Our is down or cannot be reached
|
||||
return new UpgradeResult("None", "", "");
|
||||
}
|
||||
}
|
||||
private class CheckUpgradeDto
|
||||
{
|
||||
public CheckUpgradeDto(SemVersion version)
|
||||
{
|
||||
VersionMajor = version.Major;
|
||||
VersionMinor = version.Minor;
|
||||
VersionPatch = version.Patch;
|
||||
VersionComment = version.Prerelease;
|
||||
}
|
||||
|
||||
public int VersionMajor { get; }
|
||||
public int VersionMinor { get; }
|
||||
public int VersionPatch { get; }
|
||||
public string VersionComment { get; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
namespace Umbraco.Core.Models
|
||||
{
|
||||
public class UpgradeResult
|
||||
{
|
||||
public string UpgradeType { get; }
|
||||
public string Comment { get; }
|
||||
public string UpgradeUrl { get; }
|
||||
|
||||
public UpgradeResult(string upgradeType, string comment, string upgradeUrl)
|
||||
{
|
||||
UpgradeType = upgradeType;
|
||||
Comment = comment;
|
||||
UpgradeUrl = upgradeUrl;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using System.Threading.Tasks;
|
||||
using Semver;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Persistence.Repositories;
|
||||
using Umbraco.Core.Services;
|
||||
|
||||
namespace Umbraco.Core
|
||||
{
|
||||
internal class UpgradeService : IUpgradeService
|
||||
{
|
||||
private readonly IUpgradeCheckRepository _upgradeCheckRepository;
|
||||
|
||||
public UpgradeService(IUpgradeCheckRepository upgradeCheckRepository)
|
||||
{
|
||||
_upgradeCheckRepository = upgradeCheckRepository;
|
||||
}
|
||||
|
||||
public async Task<UpgradeResult> CheckUpgrade(SemVersion version)
|
||||
{
|
||||
return await _upgradeCheckRepository.CheckUpgradeAsync(version);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -47,6 +47,8 @@ namespace Umbraco.Core.Composing.CompositionExtensions
|
||||
composition.RegisterUnique<IScriptRepository, ScriptRepository>();
|
||||
composition.RegisterUnique<IStylesheetRepository, StylesheetRepository>();
|
||||
composition.RegisterUnique<IContentTypeCommonRepository, ContentTypeCommonRepository>();
|
||||
composition.RegisterUnique<IInstallationRepository, InstallationRepository>();
|
||||
composition.RegisterUnique<IUpgradeCheckRepository, UpgradeCheckRepository>();
|
||||
|
||||
return composition;
|
||||
}
|
||||
|
||||
@@ -543,6 +543,16 @@ ORDER BY colName";
|
||||
}
|
||||
}
|
||||
|
||||
// If userlogin or the email has changed then need to reset security stamp
|
||||
if (changedCols.Contains("userLogin") || changedCols.Contains("userEmail"))
|
||||
{
|
||||
userDto.EmailConfirmedDate = null;
|
||||
userDto.SecurityStampToken = entity.SecurityStamp = Guid.NewGuid().ToString();
|
||||
|
||||
changedCols.Add("emailConfirmedDate");
|
||||
changedCols.Add("securityStampToken");
|
||||
}
|
||||
|
||||
//only update the changed cols
|
||||
if (changedCols.Count > 0)
|
||||
{
|
||||
|
||||
@@ -19,11 +19,13 @@ using Umbraco.Core.PropertyEditors.Validators;
|
||||
using Umbraco.Core.Scoping;
|
||||
using Umbraco.Core.Serialization;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Core.Services.Implement;
|
||||
using Umbraco.Core.Strings;
|
||||
using Umbraco.Core.Sync;
|
||||
using Umbraco.Web.Models.PublishedContent;
|
||||
using Umbraco.Web.PublishedCache;
|
||||
using Umbraco.Web;
|
||||
using Umbraco.Web.Migrations.PostMigrations;
|
||||
using Umbraco.Web.PropertyEditors;
|
||||
using Umbraco.Web.Services;
|
||||
using IntegerValidator = Umbraco.Core.PropertyEditors.Validators.IntegerValidator;
|
||||
@@ -143,8 +145,8 @@ namespace Umbraco.Core.Runtime
|
||||
// by default, register a noop factory
|
||||
composition.RegisterUnique<IPublishedModelFactory, NoopPublishedModelFactory>();
|
||||
|
||||
// by default, register a noop rebuilder
|
||||
composition.RegisterUnique<IPublishedSnapshotRebuilder, NoopPublishedSnapshotRebuilder>();
|
||||
// by default
|
||||
composition.RegisterUnique<IPublishedSnapshotRebuilder, PublishedSnapshotRebuilder>();
|
||||
|
||||
composition.SetCultureDictionaryFactory<DefaultCultureDictionaryFactory>();
|
||||
composition.Register(f => f.GetInstance<ICultureDictionaryFactory>().CreateDictionary(), Lifetime.Singleton);
|
||||
@@ -160,6 +162,10 @@ namespace Umbraco.Core.Runtime
|
||||
// register core CMS dashboards and 3rd party types - will be ordered by weight attribute & merged with package.manifest dashboards
|
||||
composition.Dashboards()
|
||||
.Add(composition.TypeLoader.GetTypes<IDashboard>());
|
||||
|
||||
// will be injected in controllers when needed to invoke rest endpoints on Our
|
||||
composition.RegisterUnique<IInstallationService, InstallationService>();
|
||||
composition.RegisterUnique<IUpgradeService, UpgradeService>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
using System.Threading.Tasks;
|
||||
using Umbraco.Core.Models;
|
||||
|
||||
namespace Umbraco.Core.Services
|
||||
{
|
||||
public interface IInstallationService
|
||||
{
|
||||
Task LogInstall(InstallLog installLog);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System.Threading.Tasks;
|
||||
using Semver;
|
||||
using Umbraco.Core.Models;
|
||||
|
||||
namespace Umbraco.Core.Services
|
||||
{
|
||||
public interface IUpgradeService
|
||||
{
|
||||
Task<UpgradeResult> CheckUpgrade(SemVersion version);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using System.Threading.Tasks;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Persistence.Repositories;
|
||||
|
||||
namespace Umbraco.Core.Services.Implement
|
||||
{
|
||||
public class InstallationService : IInstallationService
|
||||
{
|
||||
private readonly IInstallationRepository _installationRepository;
|
||||
|
||||
public InstallationService(IInstallationRepository installationRepository)
|
||||
{
|
||||
_installationRepository = installationRepository;
|
||||
}
|
||||
|
||||
public async Task LogInstall(InstallLog installLog)
|
||||
{
|
||||
await _installationRepository.SaveInstallLogAsync(installLog);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -423,6 +423,35 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Invalidate_SecurityStamp_On_Username_Change()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(Logger);
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository(provider);
|
||||
var userGroupRepository = CreateUserGroupRepository(provider);
|
||||
|
||||
var user = CreateAndCommitUserWithGroup(repository, userGroupRepository);
|
||||
var originalSecurityStamp = user.SecurityStamp;
|
||||
|
||||
// Ensure when user generated a security stamp is present
|
||||
Assert.That(user.SecurityStamp, Is.Not.Null);
|
||||
Assert.That(user.SecurityStamp, Is.Not.Empty);
|
||||
|
||||
// Update username
|
||||
user.Username = user.Username + "UPDATED";
|
||||
repository.Save(user);
|
||||
|
||||
// Get the user
|
||||
var updatedUser = repository.Get(user.Id);
|
||||
|
||||
// Ensure the Security Stamp is invalidated & no longer the same
|
||||
Assert.AreNotEqual(originalSecurityStamp, updatedUser.SecurityStamp);
|
||||
}
|
||||
}
|
||||
|
||||
private void AssertPropertyValues(IUser updatedItem, IUser originalUser)
|
||||
{
|
||||
Assert.That(updatedItem.Id, Is.EqualTo(originalUser.Id));
|
||||
|
||||
+3
-3
@@ -1109,9 +1109,9 @@
|
||||
"integrity": "sha512-kU/fHIGf2a4a3bH7E1tzALTHk+QfoUSCK9fEcMFisd6ZWvNDwPzXWAilItqOC3EDiAXPmGHaNc9/aXiD9xrAxQ=="
|
||||
},
|
||||
"angular-aria": {
|
||||
"version": "1.7.5",
|
||||
"resolved": "https://registry.npmjs.org/angular-aria/-/angular-aria-1.7.5.tgz",
|
||||
"integrity": "sha512-X2dGRw+PK7hrV7/X1Ns4e5P3KC/OBFi1l7z//D/v7zbZObsAx48qBoX7unsck+s4+mnO+ikNNkHG5N49VfAyRw=="
|
||||
"version": "1.7.9",
|
||||
"resolved": "https://registry.npmjs.org/angular-aria/-/angular-aria-1.7.9.tgz",
|
||||
"integrity": "sha512-luI3Jemd1AbOQW0krdzfEG3fM0IFtLY0bSSqIDEx3POE0XjKIC1MkrO8Csyq9PPgueLphyAPofzUwZ8YeZ88SA=="
|
||||
},
|
||||
"angular-chart.js": {
|
||||
"version": "1.1.1",
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"ace-builds": "1.4.2",
|
||||
"angular": "1.7.9",
|
||||
"angular-animate": "1.7.5",
|
||||
"angular-aria": "1.7.5",
|
||||
"angular-aria": "1.7.9",
|
||||
"angular-chart.js": "^1.1.1",
|
||||
"angular-cookies": "1.7.5",
|
||||
"angular-dynamic-locale": "0.1.37",
|
||||
|
||||
+1
@@ -71,6 +71,7 @@
|
||||
templateUrl: 'views/components/forms/umb-checkbox.html',
|
||||
controller: UmbCheckboxController,
|
||||
controllerAs: 'vm',
|
||||
transclude: true,
|
||||
bindings: {
|
||||
model: "=",
|
||||
inputId: "@",
|
||||
|
||||
+1
@@ -69,6 +69,7 @@
|
||||
templateUrl: 'views/components/forms/umb-radiobutton.html',
|
||||
controller: UmbRadiobuttonController,
|
||||
controllerAs: 'vm',
|
||||
transclude: true,
|
||||
bindings: {
|
||||
model: "=",
|
||||
inputId: "@",
|
||||
|
||||
@@ -169,6 +169,7 @@ When building a custom infinite editor view you can use the same components as a
|
||||
let editorsKeyboardShorcuts = [];
|
||||
var editors = [];
|
||||
var isEnabled = true;
|
||||
var lastElementInFocus = null;
|
||||
|
||||
|
||||
// events for backdrop
|
||||
@@ -261,6 +262,12 @@ When building a custom infinite editor view you can use the same components as a
|
||||
*/
|
||||
unbindKeyboardShortcuts();
|
||||
|
||||
// if this is the first editor layer, save the currently focused element
|
||||
// so we can re-apply focus to it once all the editor layers are closed
|
||||
if (editors.length === 0) {
|
||||
lastElementInFocus = document.activeElement;
|
||||
}
|
||||
|
||||
// set flag so we know when the editor is open in "infinite mode"
|
||||
editor.infiniteMode = true;
|
||||
|
||||
@@ -301,6 +308,10 @@ When building a custom infinite editor view you can use the same components as a
|
||||
$timeout(function() {
|
||||
// rebind keyboard shortcuts for the new editor in focus
|
||||
rebindKeyboardShortcuts();
|
||||
|
||||
if (editors.length === 0 && lastElementInFocus) {
|
||||
lastElementInFocus.focus();
|
||||
}
|
||||
}, 0);
|
||||
|
||||
}
|
||||
|
||||
@@ -3,15 +3,21 @@
|
||||
|
||||
.umb-form-check {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
padding: 0 0 0 26px !important;
|
||||
padding-left: 0px;
|
||||
margin: 0;
|
||||
min-height: 22px;
|
||||
line-height: 22px;
|
||||
cursor: pointer !important;
|
||||
|
||||
.umb-form-check__symbol {
|
||||
margin-top: 1px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.umb-form-check__info {
|
||||
|
||||
}
|
||||
|
||||
|
||||
&.-small-text{
|
||||
font-size: 13px;
|
||||
}
|
||||
@@ -22,7 +28,6 @@
|
||||
|
||||
&__text {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
@@ -90,10 +95,6 @@
|
||||
&__state {
|
||||
display: flex;
|
||||
height: 18px;
|
||||
margin-top: 2px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
&__check {
|
||||
@@ -101,6 +102,7 @@
|
||||
position: relative;
|
||||
background: @white;
|
||||
border: 1px solid @inputBorder;
|
||||
border-radius: @baseBorderRadius;
|
||||
width: @checkboxWidth;
|
||||
height: @checkboxHeight;
|
||||
|
||||
|
||||
@@ -4,16 +4,21 @@
|
||||
|
||||
.icon {
|
||||
position: absolute;
|
||||
padding: 5px 8px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 1px;
|
||||
padding: 0;
|
||||
pointer-events: none;
|
||||
top: 2px;
|
||||
color: @ui-action-discreet-type;
|
||||
transition: color .1s linear;
|
||||
}
|
||||
|
||||
input {
|
||||
width: 0px;
|
||||
padding-left:24px;
|
||||
padding-left: 24px;
|
||||
margin-bottom: 0px;
|
||||
background-color: transparent;
|
||||
border-color: @ui-action-discreet-border;
|
||||
|
||||
@@ -1,22 +1,28 @@
|
||||
<label class="checkbox umb-form-check umb-form-check--checkbox {{vm.cssClass}}" ng-class="{ 'umb-form-check--disabled': vm.disabled }">
|
||||
<input type="checkbox"
|
||||
id="{{vm.inputId}}"
|
||||
name="{{vm.name}}"
|
||||
value="{{vm.value}}"
|
||||
class="umb-form-check__input"
|
||||
val-server-field="{{vm.serverValidationField}}"
|
||||
ng-model="vm.model"
|
||||
ng-disabled="vm.disabled"
|
||||
ng-required="vm.required"
|
||||
ng-change="vm.change()"/>
|
||||
|
||||
<span class="umb-form-check__state" aria-hidden="true">
|
||||
<span class="umb-form-check__check">
|
||||
<i class="umb-form-check__icon icon-check"></i>
|
||||
<div class="umb-form-check__symbol">
|
||||
<input type="checkbox"
|
||||
id="{{vm.inputId}}"
|
||||
name="{{vm.name}}"
|
||||
value="{{vm.value}}"
|
||||
class="umb-form-check__input"
|
||||
val-server-field="{{vm.serverValidationField}}"
|
||||
ng-model="vm.model"
|
||||
ng-disabled="vm.disabled"
|
||||
ng-required="vm.required"
|
||||
ng-change="vm.change()"/>
|
||||
|
||||
<span class="umb-form-check__state" aria-hidden="true">
|
||||
<span class="umb-form-check__check">
|
||||
<i class="umb-form-check__icon icon-check"></i>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="umb-form-check__info" ng-transclude>
|
||||
|
||||
<i ng-if="vm.iconClass.length" class="{{vm.iconClass}}" aria-hidden="true"></i>
|
||||
<i ng-if="vm.iconClass.length" class="{{vm.iconClass}}" aria-hidden="true"></i>
|
||||
|
||||
<span ng-if="vm.text.length" class="umb-form-check__text">{{vm.text}}</span>
|
||||
<span ng-if="vm.text.length" class="umb-form-check__text">{{vm.text}}</span>
|
||||
|
||||
</div>
|
||||
</label>
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
<label class="radio umb-form-check umb-form-check--radiobutton" ng-class="{ 'umb-form-check--disabled': vm.disabled }">
|
||||
<input type="radio"
|
||||
id="{{vm.inputId}}"
|
||||
name="{{vm.name}}"
|
||||
value="{{vm.value}}"
|
||||
class="umb-form-check__input"
|
||||
ng-model="vm.model"
|
||||
ng-disabled="vm.disabled"
|
||||
ng-required="vm.required"
|
||||
ng-change="vm.change()" />
|
||||
<div class="umb-form-check__symbol">
|
||||
<input type="radio"
|
||||
id="{{vm.inputId}}"
|
||||
name="{{vm.name}}"
|
||||
value="{{vm.value}}"
|
||||
class="umb-form-check__input"
|
||||
ng-model="vm.model"
|
||||
ng-disabled="vm.disabled"
|
||||
ng-required="vm.required"
|
||||
ng-change="vm.change()" />
|
||||
|
||||
<span class="umb-form-check__state" aria-hidden="true">
|
||||
<span class="umb-form-check__check"></span>
|
||||
</span>
|
||||
<span class="umb-form-check__text">{{vm.text}}</span>
|
||||
<span class="umb-form-check__state" aria-hidden="true">
|
||||
<span class="umb-form-check__check"></span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="umb-form-check__info" ng-transclude>
|
||||
<span class="umb-form-check__text">{{vm.text}}</span>
|
||||
</div>
|
||||
</label>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div>
|
||||
<umb-load-indicator ng-if="isLoading"></umb-load-indicator>
|
||||
<div class="umb-rte" id="{{textAreaHtmlId}}" ng-style="{ visibility : isLoading ? 'hidden' : 'visible' }"></div>
|
||||
<div disable-hotkeys class="umb-rte" id="{{textAreaHtmlId}}" ng-style="{ visibility : isLoading ? 'hidden' : 'visible' }"></div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<ng-form class="umb-mini-search" ng-class="{'--has-value': vm.model !== null && vm.model !== ''}" novalidate>
|
||||
<i class="icon icon-search"></i>
|
||||
<i class="icon icon-search" aria-hidden="true"></i>
|
||||
<input
|
||||
class="form-control search-input"
|
||||
type="text"
|
||||
|
||||
@@ -2,11 +2,14 @@
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web.Http.Filters;
|
||||
using Semver;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Web.Composing;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Web.Models;
|
||||
using Umbraco.Web.Mvc;
|
||||
|
||||
@@ -15,15 +18,19 @@ namespace Umbraco.Web.Editors
|
||||
[PluginController("UmbracoApi")]
|
||||
public class UpdateCheckController : UmbracoAuthorizedJsonController
|
||||
{
|
||||
private readonly IUpgradeService _upgradeService;
|
||||
private readonly IUmbracoVersion _umbracoVersion;
|
||||
|
||||
public UpdateCheckController (IUmbracoVersion umbracoVersion)
|
||||
public UpdateCheckController() { }
|
||||
|
||||
public UpdateCheckController(IUpgradeService upgradeService, IUmbracoVersion umbracoVersion)
|
||||
{
|
||||
_upgradeService = upgradeService;
|
||||
_umbracoVersion = umbracoVersion;
|
||||
}
|
||||
|
||||
[UpdateCheckResponseFilter]
|
||||
public UpgradeCheckResponse GetCheck()
|
||||
public async Task<UpgradeCheckResponse> GetCheck()
|
||||
{
|
||||
var updChkCookie = Request.Headers.GetCookies("UMB_UPDCHK").FirstOrDefault();
|
||||
var updateCheckCookie = updChkCookie != null ? updChkCookie["UMB_UPDCHK"].Value : "";
|
||||
@@ -31,14 +38,11 @@ namespace Umbraco.Web.Editors
|
||||
{
|
||||
try
|
||||
{
|
||||
var check = new org.umbraco.update.CheckForUpgrade { Timeout = 2000 };
|
||||
var version = new SemVersion(_umbracoVersion.Current.Major, _umbracoVersion.Current.Minor,
|
||||
_umbracoVersion.Current.Build, _umbracoVersion.Comment);
|
||||
var result = await _upgradeService.CheckUpgrade(version);
|
||||
|
||||
var result = check.CheckUpgrade(_umbracoVersion.Current.Major,
|
||||
_umbracoVersion.Current.Minor,
|
||||
_umbracoVersion.Current.Build,
|
||||
_umbracoVersion.Comment);
|
||||
|
||||
return new UpgradeCheckResponse(result.UpgradeType.ToString(), result.Comment, result.UpgradeUrl, _umbracoVersion);
|
||||
return new UpgradeCheckResponse(result.UpgradeType, result.Comment, result.UpgradeUrl);
|
||||
}
|
||||
catch (System.Net.WebException)
|
||||
{
|
||||
|
||||
@@ -2,13 +2,16 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Migrations.Install;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.SqlSyntax;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Web.Composing;
|
||||
using Umbraco.Web.Install.Models;
|
||||
|
||||
@@ -23,11 +26,16 @@ namespace Umbraco.Web.Install
|
||||
private readonly IGlobalSettings _globalSettings;
|
||||
private readonly IUmbracoVersion _umbracoVersion;
|
||||
private readonly IConnectionStrings _connectionStrings;
|
||||
private readonly IInstallationService _installationService;
|
||||
private InstallationType? _installationType;
|
||||
|
||||
public InstallHelper(IHttpContextAccessor httpContextAccessor,
|
||||
DatabaseBuilder databaseBuilder,
|
||||
ILogger logger, IGlobalSettings globalSettings, IUmbracoVersion umbracoVersion, IConnectionStrings connectionStrings)
|
||||
ILogger logger,
|
||||
IGlobalSettings globalSettings,
|
||||
IUmbracoVersion umbracoVersion,
|
||||
IConnectionStrings connectionStrings,
|
||||
IInstallationService installationService)
|
||||
{
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_logger = logger;
|
||||
@@ -35,6 +43,7 @@ namespace Umbraco.Web.Install
|
||||
_umbracoVersion = umbracoVersion;
|
||||
_databaseBuilder = databaseBuilder;
|
||||
_connectionStrings = connectionStrings ?? throw new ArgumentNullException(nameof(connectionStrings));
|
||||
_installationService = installationService;
|
||||
}
|
||||
|
||||
public InstallationType GetInstallationType()
|
||||
@@ -42,7 +51,7 @@ namespace Umbraco.Web.Install
|
||||
return _installationType ?? (_installationType = IsBrandNewInstall ? InstallationType.NewInstall : InstallationType.Upgrade).Value;
|
||||
}
|
||||
|
||||
internal void InstallStatus(bool isCompleted, string errorMsg)
|
||||
internal async Task InstallStatus(bool isCompleted, string errorMsg)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -61,8 +70,12 @@ namespace Umbraco.Web.Install
|
||||
if (installId == Guid.Empty)
|
||||
installId = Guid.NewGuid();
|
||||
}
|
||||
else
|
||||
{
|
||||
installId = Guid.NewGuid(); // Guid.TryParse will have reset installId to Guid.Empty
|
||||
}
|
||||
}
|
||||
httpContext.Response.Cookies.Set(new HttpCookie(Constants.Web.InstallerCookieName, "1"));
|
||||
httpContext.Response.Cookies.Set(new HttpCookie(Constants.Web.InstallerCookieName, installId.ToString()));
|
||||
|
||||
var dbProvider = string.Empty;
|
||||
if (IsBrandNewInstall == false)
|
||||
@@ -72,18 +85,13 @@ namespace Umbraco.Web.Install
|
||||
dbProvider = GetDbProviderString(Current.SqlContext);
|
||||
}
|
||||
|
||||
var check = new org.umbraco.update.CheckForUpgrade();
|
||||
check.Install(installId,
|
||||
IsBrandNewInstall == false,
|
||||
isCompleted,
|
||||
DateTime.Now,
|
||||
_umbracoVersion.Current.Major,
|
||||
_umbracoVersion.Current.Minor,
|
||||
_umbracoVersion.Current.Build,
|
||||
_umbracoVersion.Comment,
|
||||
errorMsg,
|
||||
userAgent,
|
||||
dbProvider);
|
||||
var installLog = new InstallLog(installId: installId, isUpgrade: IsBrandNewInstall == false,
|
||||
installCompleted: isCompleted, timestamp: DateTime.Now, versionMajor: _umbracoVersion.Current.Major,
|
||||
versionMinor: _umbracoVersion.Current.Minor, versionPatch: _umbracoVersion.Current.Build,
|
||||
versionComment: _umbracoVersion.Comment, error: errorMsg, userAgent: userAgent,
|
||||
dbProvider: dbProvider);
|
||||
|
||||
await _installationService.LogInstall(installLog);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -652,6 +652,8 @@
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Reference.map</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UriUtility.cs" />
|
||||
<Compile Include="UmbracoAuthorizedHttpHandler.cs" />
|
||||
<Compile Include="UmbracoHttpHandler.cs" />
|
||||
<Compile Include="UmbracoWebService.cs">
|
||||
<SubType>Component</SubType>
|
||||
@@ -674,22 +676,12 @@
|
||||
<EmbeddedResource Include="JavaScript\JsInitialize.js" />
|
||||
<EmbeddedResource Include="JavaScript\ServerVariables.js" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WebReferences Include="Web References\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="JavaScript\PreviewInitialize.js" />
|
||||
<None Include="JavaScript\TinyMceInitialize.js" />
|
||||
<!--<Content Include="umbraco.presentation\umbraco\users\PermissionEditor.aspx" />-->
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Web References\org.umbraco.update\checkforupgrade.disco" />
|
||||
<None Include="Web References\org.umbraco.update\checkforupgrade.wsdl" />
|
||||
<None Include="Web References\org.umbraco.update\Reference.map">
|
||||
<Generator>MSDiscoCodeGenerator</Generator>
|
||||
<LastGenOutput>Reference.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="..\Umbraco.Web.UI\Views\web.config">
|
||||
<Link>Mvc\web.config</Link>
|
||||
</None>
|
||||
@@ -698,6 +690,9 @@
|
||||
</None>
|
||||
<None Include="Web References\org.umbraco.update\UpgradeResult1.datasource">
|
||||
<DependentUpon>Reference.map</DependentUpon>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,286 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//
|
||||
// This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.42000.
|
||||
//
|
||||
#pragma warning disable 1591
|
||||
|
||||
namespace Umbraco.Web.org.umbraco.update {
|
||||
using System;
|
||||
using System.Web.Services;
|
||||
using System.Diagnostics;
|
||||
using System.Web.Services.Protocols;
|
||||
using System.Xml.Serialization;
|
||||
using System.ComponentModel;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3062.0")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Web.Services.WebServiceBindingAttribute(Name="CheckForUpgradeSoap", Namespace="http://update.umbraco.org/")]
|
||||
public partial class CheckForUpgrade : System.Web.Services.Protocols.SoapHttpClientProtocol {
|
||||
|
||||
private System.Threading.SendOrPostCallback InstallOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback CheckUpgradeOperationCompleted;
|
||||
|
||||
private bool useDefaultCredentialsSetExplicitly;
|
||||
|
||||
/// <remarks/>
|
||||
public CheckForUpgrade() {
|
||||
this.Url = "http://update.umbraco.org/checkforupgrade.asmx";
|
||||
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
|
||||
this.UseDefaultCredentials = true;
|
||||
this.useDefaultCredentialsSetExplicitly = false;
|
||||
}
|
||||
else {
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
public new string Url {
|
||||
get {
|
||||
return base.Url;
|
||||
}
|
||||
set {
|
||||
if ((((this.IsLocalFileSystemWebService(base.Url) == true)
|
||||
&& (this.useDefaultCredentialsSetExplicitly == false))
|
||||
&& (this.IsLocalFileSystemWebService(value) == false))) {
|
||||
base.UseDefaultCredentials = false;
|
||||
}
|
||||
base.Url = value;
|
||||
}
|
||||
}
|
||||
|
||||
public new bool UseDefaultCredentials {
|
||||
get {
|
||||
return base.UseDefaultCredentials;
|
||||
}
|
||||
set {
|
||||
base.UseDefaultCredentials = value;
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public event InstallCompletedEventHandler InstallCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event CheckUpgradeCompletedEventHandler CheckUpgradeCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://update.umbraco.org/Install", RequestNamespace="http://update.umbraco.org/", ResponseNamespace="http://update.umbraco.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public void Install(System.Guid installId, bool isUpgrade, bool installCompleted, System.DateTime timestamp, int versionMajor, int versionMinor, int versionPatch, string versionComment, string error, string userAgent, string dbProvider) {
|
||||
this.Invoke("Install", new object[] {
|
||||
installId,
|
||||
isUpgrade,
|
||||
installCompleted,
|
||||
timestamp,
|
||||
versionMajor,
|
||||
versionMinor,
|
||||
versionPatch,
|
||||
versionComment,
|
||||
error,
|
||||
userAgent,
|
||||
dbProvider});
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void InstallAsync(System.Guid installId, bool isUpgrade, bool installCompleted, System.DateTime timestamp, int versionMajor, int versionMinor, int versionPatch, string versionComment, string error, string userAgent, string dbProvider) {
|
||||
this.InstallAsync(installId, isUpgrade, installCompleted, timestamp, versionMajor, versionMinor, versionPatch, versionComment, error, userAgent, dbProvider, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void InstallAsync(System.Guid installId, bool isUpgrade, bool installCompleted, System.DateTime timestamp, int versionMajor, int versionMinor, int versionPatch, string versionComment, string error, string userAgent, string dbProvider, object userState) {
|
||||
if ((this.InstallOperationCompleted == null)) {
|
||||
this.InstallOperationCompleted = new System.Threading.SendOrPostCallback(this.OnInstallOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("Install", new object[] {
|
||||
installId,
|
||||
isUpgrade,
|
||||
installCompleted,
|
||||
timestamp,
|
||||
versionMajor,
|
||||
versionMinor,
|
||||
versionPatch,
|
||||
versionComment,
|
||||
error,
|
||||
userAgent,
|
||||
dbProvider}, this.InstallOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnInstallOperationCompleted(object arg) {
|
||||
if ((this.InstallCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.InstallCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://update.umbraco.org/CheckUpgrade", RequestNamespace="http://update.umbraco.org/", ResponseNamespace="http://update.umbraco.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public UpgradeResult CheckUpgrade(int versionMajor, int versionMinor, int versionPatch, string versionComment) {
|
||||
object[] results = this.Invoke("CheckUpgrade", new object[] {
|
||||
versionMajor,
|
||||
versionMinor,
|
||||
versionPatch,
|
||||
versionComment});
|
||||
return ((UpgradeResult)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void CheckUpgradeAsync(int versionMajor, int versionMinor, int versionPatch, string versionComment) {
|
||||
this.CheckUpgradeAsync(versionMajor, versionMinor, versionPatch, versionComment, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void CheckUpgradeAsync(int versionMajor, int versionMinor, int versionPatch, string versionComment, object userState) {
|
||||
if ((this.CheckUpgradeOperationCompleted == null)) {
|
||||
this.CheckUpgradeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckUpgradeOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("CheckUpgrade", new object[] {
|
||||
versionMajor,
|
||||
versionMinor,
|
||||
versionPatch,
|
||||
versionComment}, this.CheckUpgradeOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnCheckUpgradeOperationCompleted(object arg) {
|
||||
if ((this.CheckUpgradeCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.CheckUpgradeCompleted(this, new CheckUpgradeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public new void CancelAsync(object userState) {
|
||||
base.CancelAsync(userState);
|
||||
}
|
||||
|
||||
private bool IsLocalFileSystemWebService(string url) {
|
||||
if (((url == null)
|
||||
|| (url == string.Empty))) {
|
||||
return false;
|
||||
}
|
||||
System.Uri wsUri = new System.Uri(url);
|
||||
if (((wsUri.Port >= 1024)
|
||||
&& (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3062.0")]
|
||||
[System.SerializableAttribute()]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://update.umbraco.org/")]
|
||||
public partial class UpgradeResult {
|
||||
|
||||
private string commentField;
|
||||
|
||||
private UpgradeType upgradeTypeField;
|
||||
|
||||
private string upgradeUrlField;
|
||||
|
||||
/// <remarks/>
|
||||
public string Comment {
|
||||
get {
|
||||
return this.commentField;
|
||||
}
|
||||
set {
|
||||
this.commentField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public UpgradeType UpgradeType {
|
||||
get {
|
||||
return this.upgradeTypeField;
|
||||
}
|
||||
set {
|
||||
this.upgradeTypeField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string UpgradeUrl {
|
||||
get {
|
||||
return this.upgradeUrlField;
|
||||
}
|
||||
set {
|
||||
this.upgradeUrlField = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3062.0")]
|
||||
[System.SerializableAttribute()]
|
||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://update.umbraco.org/")]
|
||||
public enum UpgradeType {
|
||||
|
||||
/// <remarks/>
|
||||
None,
|
||||
|
||||
/// <remarks/>
|
||||
Patch,
|
||||
|
||||
/// <remarks/>
|
||||
Minor,
|
||||
|
||||
/// <remarks/>
|
||||
Major,
|
||||
|
||||
/// <remarks/>
|
||||
Critical,
|
||||
|
||||
/// <remarks/>
|
||||
Error,
|
||||
|
||||
/// <remarks/>
|
||||
OutOfSync,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3062.0")]
|
||||
public delegate void InstallCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3062.0")]
|
||||
public delegate void CheckUpgradeCompletedEventHandler(object sender, CheckUpgradeCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.3062.0")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class CheckUpgradeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal CheckUpgradeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public UpgradeResult Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((UpgradeResult)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning restore 1591
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Results>
|
||||
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://update.umbraco.org/checkforupgrade.asmx?wsdl" filename="checkforupgrade.wsdl" />
|
||||
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://update.umbraco.org/checkforupgrade.asmx?disco" filename="checkforupgrade.disco" />
|
||||
</Results>
|
||||
</DiscoveryClientResultsFile>
|
||||
@@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This file is automatically generated by Visual Studio .Net. It is
|
||||
used to store generic object data source configuration information.
|
||||
Renaming the file extension or editing the content of this file may
|
||||
cause the file to be unrecognizable by the program.
|
||||
-->
|
||||
<GenericObjectDataSource DisplayName="UpgradeResult" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<TypeInfo>umbraco.presentation.org.umbraco.update.UpgradeResult, Web References.org.umbraco.update.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||
</GenericObjectDataSource>
|
||||
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
|
||||
<contractRef ref="http://update.umbraco.org/checkforupgrade.asmx?wsdl" docRef="http://update.umbraco.org/checkforupgrade.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
|
||||
<soap address="http://update.umbraco.org/checkforupgrade.asmx" xmlns:q1="http://update.umbraco.org/" binding="q1:CheckForUpgradeSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
<soap address="http://update.umbraco.org/checkforupgrade.asmx" xmlns:q2="http://update.umbraco.org/" binding="q2:CheckForUpgradeSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
</discovery>
|
||||
@@ -1,142 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://update.umbraco.org/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s1="http://microsoft.com/wsdl/types/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://update.umbraco.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
<wsdl:types>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://update.umbraco.org/">
|
||||
<s:import namespace="http://microsoft.com/wsdl/types/" />
|
||||
<s:element name="Install">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="installId" type="s1:guid" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="isUpgrade" type="s:boolean" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="installCompleted" type="s:boolean" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="timestamp" type="s:dateTime" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="versionMajor" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="versionMinor" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="versionPatch" type="s:int" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="versionComment" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="error" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="userAgent" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="dbProvider" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="InstallResponse">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="CheckUpgrade">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="versionMajor" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="versionMinor" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="versionPatch" type="s:int" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="versionComment" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="CheckUpgradeResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="CheckUpgradeResult" type="tns:UpgradeResult" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="UpgradeResult">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Comment" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="UpgradeType" type="tns:UpgradeType" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="UpgradeUrl" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:simpleType name="UpgradeType">
|
||||
<s:restriction base="s:string">
|
||||
<s:enumeration value="None" />
|
||||
<s:enumeration value="Patch" />
|
||||
<s:enumeration value="Minor" />
|
||||
<s:enumeration value="Major" />
|
||||
<s:enumeration value="Critical" />
|
||||
<s:enumeration value="Error" />
|
||||
<s:enumeration value="OutOfSync" />
|
||||
</s:restriction>
|
||||
</s:simpleType>
|
||||
</s:schema>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://microsoft.com/wsdl/types/">
|
||||
<s:simpleType name="guid">
|
||||
<s:restriction base="s:string">
|
||||
<s:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" />
|
||||
</s:restriction>
|
||||
</s:simpleType>
|
||||
</s:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="InstallSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:Install" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="InstallSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:InstallResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CheckUpgradeSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:CheckUpgrade" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CheckUpgradeSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:CheckUpgradeResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="CheckForUpgradeSoap">
|
||||
<wsdl:operation name="Install">
|
||||
<wsdl:input message="tns:InstallSoapIn" />
|
||||
<wsdl:output message="tns:InstallSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CheckUpgrade">
|
||||
<wsdl:input message="tns:CheckUpgradeSoapIn" />
|
||||
<wsdl:output message="tns:CheckUpgradeSoapOut" />
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="CheckForUpgradeSoap" type="tns:CheckForUpgradeSoap">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="Install">
|
||||
<soap:operation soapAction="http://update.umbraco.org/Install" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CheckUpgrade">
|
||||
<soap:operation soapAction="http://update.umbraco.org/CheckUpgrade" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:binding name="CheckForUpgradeSoap12" type="tns:CheckForUpgradeSoap">
|
||||
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="Install">
|
||||
<soap12:operation soapAction="http://update.umbraco.org/Install" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CheckUpgrade">
|
||||
<soap12:operation soapAction="http://update.umbraco.org/CheckUpgrade" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="CheckForUpgrade">
|
||||
<wsdl:port name="CheckForUpgradeSoap" binding="tns:CheckForUpgradeSoap">
|
||||
<soap:address location="http://update.umbraco.org/checkforupgrade.asmx" />
|
||||
</wsdl:port>
|
||||
<wsdl:port name="CheckForUpgradeSoap12" binding="tns:CheckForUpgradeSoap12">
|
||||
<soap12:address location="http://update.umbraco.org/checkforupgrade.asmx" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
||||
Reference in New Issue
Block a user