diff --git a/src/Directory.Build.props b/src/Directory.Build.props index fb29b57d91..6c4d832170 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -5,7 +5,7 @@ 9.5.0 9.5.0 - 9.5.0-rc + 9.5.0-rc3 9.5.0 9.0 en-US diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/user/user.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/user/user.controller.js index 7f9e546709..53c8b13bff 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/user/user.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/user/user.controller.js @@ -1,14 +1,12 @@ angular.module("umbraco") - .controller("Umbraco.Editors.UserController", function ($scope, $location, $timeout, + .controller("Umbraco.Editors.UserController", function ($scope, $location, dashboardResource, userService, historyService, eventsService, - externalLoginInfoService, authResource, - currentUserResource, formHelper, localizationService, editorService, twoFactorLoginResource) { + externalLoginInfoService, authResource, contentEditingHelper, + currentUserResource, overlayService, localizationService, editorService, twoFactorLoginResource) { let vm = this; vm.history = historyService.getCurrent(); - vm.showPasswordFields = false; - vm.changePasswordButtonState = "init"; vm.hasTwoFactorProviders = false; localizationService.localize("general_user").then(function (value) { @@ -51,20 +49,7 @@ angular.module("umbraco") $location.path(link); vm.close(); }; - /* - //Manually update the remaining timeout seconds - function updateTimeout() { - $timeout(function () { - if (vm.remainingAuthSeconds > 0) { - vm.remainingAuthSeconds--; - $scope.$digest(); - //recurse - updateTimeout(); - } - }, 1000, false); // 1 second, do NOT execute a global digest - } - */ function updateUserInfo() { //get the user userService.getCurrentUser().then(function (user) { @@ -72,8 +57,6 @@ angular.module("umbraco") if (vm.user) { vm.remainingAuthSeconds = vm.user.remainingAuthSeconds; vm.canEditProfile = _.indexOf(vm.user.allowedSections, "users") > -1; - //set the timer - //updateTimeout(); currentUserResource.getCurrentUserLinkedLogins().then(function (logins) { @@ -107,10 +90,20 @@ angular.module("umbraco") } }); - - } + function changePassword() { + return currentUserResource.changePassword(vm.changePasswordModel.value).then(function () { + return true; + }, function (err) { + contentEditingHelper.handleSaveError({ + err: err, + showNotifications: true + }); + return false; + }); + }; + vm.linkProvider = function (e) { e.target.submit(); } @@ -144,53 +137,40 @@ angular.module("umbraco") }); - vm.changePassword = function () { - - if (formHelper.submitForm({ scope: $scope })) { - - vm.changePasswordButtonState = "busy"; - - currentUserResource.changePassword(vm.changePasswordModel.value).then(function (data) { - - //reset old data - clearPasswordFields(); - - formHelper.resetForm({ scope: $scope }); - - vm.changePasswordButtonState = "success"; - $timeout(function () { - vm.togglePasswordFields(); - }, 2000); - - }, function (err) { - formHelper.resetForm({ scope: $scope, hasErrors: true }); - formHelper.handleError(err); - - vm.changePasswordButtonState = "error"; - - }); - - } - - }; - - vm.togglePasswordFields = function () { - clearPasswordFields(); - vm.showPasswordFields = !vm.showPasswordFields; - } - - function clearPasswordFields() { - vm.changePasswordModel.value.oldPassword = ""; - vm.changePasswordModel.value.newPassword = ""; - vm.changePasswordModel.value.confirm = ""; - } - vm.editUser = function () { $location .path('/users/users/user/' + vm.user.id); vm.close(); } + vm.toggleChangePassword = function () { + //reset it + vm.user.changePassword = null; + + localizationService.localizeMany(["general_cancel", "general_confirm", "general_changePassword"]) + .then(function (data) { + const overlay = { + view: "changepassword", + title: data[2], + changePassword: vm.user.changePassword, + config: vm.changePasswordModel.config, + closeButtonLabel: data[0], + submitButtonLabel: data[1], + submitButtonStyle: 'success', + close: () => overlayService.close(), + submit: model => { + vm.changePasswordModel.value = model.changePassword; + changePassword().then(result => { + if (result) { + overlayService.close(); + } + }); + } + }; + overlayService.open(overlay); + }); + } + vm.toggleConfigureTwoFactor = function () { const configureTwoFactorSettings = { diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/user/user.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/user/user.html index c67f65a7d2..ed8cbd13e0 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/user/user.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/user/user.html @@ -16,7 +16,7 @@ label-key="general_edit" ng-if="vm.canEditProfile" type="button"> - @@ -91,29 +91,6 @@ -
- -
- Change password -
- -
- - - - - - - - - - -
- -
-
{{tab.label}}
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/users/change-password.html b/src/Umbraco.Web.UI.Client/src/views/components/users/change-password.html index 81dd8d6fe8..74cba97696 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/users/change-password.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/users/change-password.html @@ -16,8 +16,9 @@ - @@ -28,8 +29,9 @@ - The confirmed password doesn't match the new password! diff --git a/src/Umbraco.Web.UI.Client/src/views/dashboard/settings/analytics.html b/src/Umbraco.Web.UI.Client/src/views/dashboard/settings/analytics.html index 361b0c8bdc..ad798dc613 100644 --- a/src/Umbraco.Web.UI.Client/src/views/dashboard/settings/analytics.html +++ b/src/Umbraco.Web.UI.Client/src/views/dashboard/settings/analytics.html @@ -5,12 +5,14 @@ Consent for analytics
-

In order to improve Umbraco and add new functionality based on as relevant information as possible, + + In order to improve Umbraco and add new functionality based on as relevant information as possible,
we would like to collect system- and usage information from your installation. -
We will NOT collect any personal data like content, code or users, and all data will be fully anonymous. +
Aggregate data will be shared on a regular basis as well as learnings from these metrics. +
Hopefully, you will help us collect some valuable data.
-
We will on a regular basis share some of the overall learnings from these metrics. - Hopefully, you'll help us collect some valuable data.

+
We WILL NOT collect any personal data such as content, code, user information, and all data will be fully anonymized. +
-

{{vm.sliderVal}} -
We'll only send an anonymous site ID to let us know that the site exists. +
+ We'll only send an anonymous site ID to let us know that the + site exists. +
{{vm.sliderVal}} -
We'll send site ID, umbraco version and packages installed +
+ We'll send site ID, umbraco version and packages installed +
{{vm.sliderVal}} -
We'll send: -
- Site ID, umbraco version and packages installed -
- System information like Server OS and Webserver -
- Statistics, like number of content nodes and number of media items -
- Configuration settings, like modelsbuilder mode and used languages -
-
We might change/extend what we send on the detailed level in the future, but if so, it will be listed in - this view. - By choosing "detailed" I accept these future changes + +
We will send: +
- Anonymized site ID, umbraco version, and packages installed. +
- Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, and Property Editors in use. +
- System information: Webserver, server OS, server framework, server OS language, and database provider. +
- Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, and if you are in debug mode. +
+
We might change what we send on the Detailed level in the future. If so, it will be listed above. +
By choosing "Detailed" you agree to current and future anonymized information being collected.
+
-

Consent for analytics Analytics level saved! + + we would like to collect system- and usage information from your installation. +
Aggregate data will be shared on a regular basis as well as learnings from these metrics. +
Hopefully, you will help us collect some valuable data. +
+
We WILL NOT collect any personal data such as content, code, user information, and all data will be fully anonymized. + ]]> +
+ We will only send an anonymized site ID to let us know that the site exists. + We will send an anonymized site ID, umbraco version, and packages installed + + We will send: +
- Anonymized site ID, umbraco version, and packages installed. +
- Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, and Property Editors in use. +
- System information: Webserver, server OS, server framework, server OS language, and database provider. +
- Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, and if you are in debug mode. +
+
We might change what we send on the Detailed level in the future. If so, it will be listed above. +
By choosing "Detailed" you agree to current and future anonymized information being collected.
+ ]]> +
diff --git a/templates/UmbracoPackage/.template.config/template.json b/templates/UmbracoPackage/.template.config/template.json index d0bbc2b925..05220817e8 100644 --- a/templates/UmbracoPackage/.template.config/template.json +++ b/templates/UmbracoPackage/.template.config/template.json @@ -46,7 +46,7 @@ "description": "The version of Umbraco.Cms to add as PackageReference.", "type": "parameter", "datatype": "string", - "defaultValue": "9.5.0-rc", + "defaultValue": "9.5.0-rc3", "replaces": "UMBRACO_VERSION_FROM_TEMPLATE" }, "namespaceReplacer": { diff --git a/templates/UmbracoProject/.template.config/template.json b/templates/UmbracoProject/.template.config/template.json index be82ef9b5f..8e0723944d 100644 --- a/templates/UmbracoProject/.template.config/template.json +++ b/templates/UmbracoProject/.template.config/template.json @@ -44,7 +44,7 @@ "description": "The version of Umbraco.Cms to add as PackageReference.", "type": "parameter", "datatype": "string", - "defaultValue": "9.5.0-rc", + "defaultValue": "9.5.0-rc3", "replaces": "UMBRACO_VERSION_FROM_TEMPLATE" }, "UseHttpsRedirect": {