diff --git a/src/Umbraco.Web/Editors/BackOfficeController.cs b/src/Umbraco.Web/Editors/BackOfficeController.cs index 26bf5e3c38..8f1cc51846 100644 --- a/src/Umbraco.Web/Editors/BackOfficeController.cs +++ b/src/Umbraco.Web/Editors/BackOfficeController.cs @@ -15,6 +15,7 @@ using Umbraco.Web.Mvc; using Umbraco.Web.Trees; using Umbraco.Web.UI.JavaScript; using Umbraco.Web.PropertyEditors; +using Umbraco.Web.Models; namespace Umbraco.Web.Editors { @@ -164,6 +165,29 @@ namespace Umbraco.Web.Editors return JavaScript(ServerVariablesParser.Parse(d)); } + [HttpGet] + public UpgradeCheckResponse UpdateChecker() + { + //PP: The statehelper is obsolete, but there are NO directions on what to use instead, so keeping it here... + var updChkCookie = new global::umbraco.BusinessLogic.StateHelper.Cookies.Cookie("UMB_UPDCHK", GlobalSettings.VersionCheckPeriod); + string updateCheckCookie = updChkCookie.HasValue ? updChkCookie.GetValue() : ""; + + if (GlobalSettings.VersionCheckPeriod > 0 && String.IsNullOrEmpty(updateCheckCookie) && Security.CurrentUser.UserType.Alias == "admin") + { + updChkCookie.SetValue("1"); + + var check = new global::umbraco.presentation.org.umbraco.update.CheckForUpgrade(); + var result = check.CheckUpgrade(UmbracoVersion.Current.Major, + UmbracoVersion.Current.Minor, + UmbracoVersion.Current.Build, + UmbracoVersion.CurrentComment); + + return new UpgradeCheckResponse(result.UpgradeType.ToString(), result.Comment, result.UpgradeUrl); + } + + return null; + } + private IEnumerable> GetTreePluginsMetaData() { var treeTypes = PluginManager.Current.ResolveAttributedTreeControllers(); diff --git a/src/Umbraco.Web/Models/UpgradeCheckResponse.cs b/src/Umbraco.Web/Models/UpgradeCheckResponse.cs new file mode 100644 index 0000000000..b93aeab0e1 --- /dev/null +++ b/src/Umbraco.Web/Models/UpgradeCheckResponse.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; +using System.Web; +using Umbraco.Core.Configuration; + +namespace Umbraco.Web.Models +{ + public class UpgradeCheckResponse + { + [DataMember(Name = "type")] + public string Type { get; set; } + [DataMember(Name = "comment")] + public string Comment { get; set; } + + [DataMember(Name = "url")] + public string Url { get; set; } + + public UpgradeCheckResponse() { } + public UpgradeCheckResponse(string upgradeType, string upgradeComment, string upgradeUrl) + { + Type = upgradeType; + Comment = upgradeComment; + Url = upgradeUrl + "?version=" + HttpUtility.UrlEncode(UmbracoVersion.Current.ToString(3)); + } + } +} diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index e81d9f047a..7db7843902 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -331,6 +331,7 @@ + diff --git a/src/umbraco.providers/UsersMembershipProvider.cs b/src/umbraco.providers/UsersMembershipProvider.cs index 03b4fb530a..8ef67ad7b0 100644 --- a/src/umbraco.providers/UsersMembershipProvider.cs +++ b/src/umbraco.providers/UsersMembershipProvider.cs @@ -18,7 +18,7 @@ namespace umbraco.providers /// public class UsersMembershipProvider : MembershipProviderBase { - public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config) + public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config) { if (config == null) throw new ArgumentNullException("config"); if (string.IsNullOrEmpty(name)) name = "UsersMembershipProvider"; diff --git a/src/umbraco.providers/members/MembersMembershipProvider.cs b/src/umbraco.providers/members/MembersMembershipProvider.cs index c9b97721f4..5f9cda4d5f 100644 --- a/src/umbraco.providers/members/MembersMembershipProvider.cs +++ b/src/umbraco.providers/members/MembersMembershipProvider.cs @@ -123,6 +123,7 @@ namespace umbraco.providers.members /// public override bool ChangePassword(string username, string oldPassword, string newPassword) { + // in order to support updating passwords from the umbraco core, we can't validate the old password var m = Member.GetMemberFromLoginNameAndPassword(username, oldPassword); if (m == null) return false;