diff --git a/src/Umbraco.Web.UI.Client/src/common/security/interceptor.js b/src/Umbraco.Web.UI.Client/src/common/security/interceptor.js
index 05bab31baf..56e0eb3041 100644
--- a/src/Umbraco.Web.UI.Client/src/common/security/interceptor.js
+++ b/src/Umbraco.Web.UI.Client/src/common/security/interceptor.js
@@ -29,6 +29,24 @@ angular.module('umbraco.security.interceptor', ['umbraco.security.retryQueue'])
return $injector.get('$http')(originalResponse.config);
});
}
+ else if (originalResponse.status === 404) {
+
+ //a 404 indicates that the request was not found - this could be due to a non existing url, or it could
+ //be due to accessing a url with a parameter that doesn't exist, either way we should notifiy the user about it
+
+ var errMsg = "The URL returned a 404 (not found): " + originalResponse.config.url.split('?')[0] + "";
+ if (originalResponse.data && originalResponse.data.ExceptionMessage) {
+ errMsg += " with error: " + originalResponse.data.ExceptionMessage + "";
+ }
+ if (originalResponse.config.data) {
+ errMsg += " with data: " + angular.toJson(originalResponse.config.data) + " Contact your administrator for information.";
+ }
+
+ notifications.error(
+ "Request error",
+ errMsg);
+
+ }
else if (originalResponse.status === 403) {
//if the status was a 403 it means the user didn't have permission to do what the request was trying to do.
//How do we deal with this now, need to tell the user somehow that they don't have permission to do the thing that was
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/changepassword/changepassword.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/changepassword/changepassword.controller.js
index 97eb75241b..aa88fdfdf4 100644
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/changepassword/changepassword.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/changepassword/changepassword.controller.js
@@ -102,7 +102,9 @@ angular.module("umbraco").controller("Umbraco.PropertyEditors.ChangePasswordCont
};
$scope.showOldPass = function() {
- return $scope.model.config.hasPassword && !$scope.model.config.enablePasswordRetrieval && !$scope.model.value.reset;
+ return $scope.model.config.hasPassword &&
+ !$scope.model.config.allowManuallyChangingPassword &&
+ !$scope.model.config.enablePasswordRetrieval && !$scope.model.value.reset;
};
$scope.showNewPass = function () {
@@ -117,8 +119,4 @@ angular.module("umbraco").controller("Umbraco.PropertyEditors.ChangePasswordCont
return $scope.model.config.disableToggle !== true && $scope.model.config.hasPassword;
};
- $scope.oldPassRequired = function() {
- return !$scope.model.value.reset && $scope.model.config.hasPassword && !$scope.model.config.enablePasswordRetrieval;
- };
-
});
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/changepassword/changepassword.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/changepassword/changepassword.html
index b86f066546..0dbb234acd 100644
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/changepassword/changepassword.html
+++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/changepassword/changepassword.html
@@ -22,7 +22,7 @@
Required
diff --git a/src/Umbraco.Web/MembershipProviderExtensions.cs b/src/Umbraco.Web/MembershipProviderExtensions.cs
index 16c1eddaa2..f33e9f375c 100644
--- a/src/Umbraco.Web/MembershipProviderExtensions.cs
+++ b/src/Umbraco.Web/MembershipProviderExtensions.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Security;
+using Umbraco.Core.Security;
namespace Umbraco.Web
{
@@ -17,12 +18,15 @@ namespace Umbraco.Web
public static IDictionary GetConfiguration(
this MembershipProvider membershipProvider)
{
+ var baseProvider = membershipProvider as MembershipProviderBase;
+
return new Dictionary
{
{"minPasswordLength", membershipProvider.MinRequiredPasswordLength},
{"enableReset", membershipProvider.EnablePasswordReset},
{"enablePasswordRetrieval", membershipProvider.EnablePasswordRetrieval},
- {"requiresQuestionAnswer", membershipProvider.RequiresQuestionAndAnswer}
+ {"requiresQuestionAnswer", membershipProvider.RequiresQuestionAndAnswer},
+ {"allowManuallyChangingPassword", baseProvider != null && baseProvider.AllowManuallyChangingPassword}
//TODO: Inject the other parameters in here to change the behavior of this control - based on the membership provider settings.
};
}
diff --git a/src/Umbraco.Web/WebApi/Filters/ContentItemValidationHelper.cs b/src/Umbraco.Web/WebApi/Filters/ContentItemValidationHelper.cs
index fccbe9dc68..d9be926ce7 100644
--- a/src/Umbraco.Web/WebApi/Filters/ContentItemValidationHelper.cs
+++ b/src/Umbraco.Web/WebApi/Filters/ContentItemValidationHelper.cs
@@ -90,7 +90,7 @@ namespace Umbraco.Web.WebApi.Filters
foreach (var p in postedItem.Properties)
{
- if (postedItem.PersistedContent.Properties.Contains(p.Alias))
+ if (postedItem.PersistedContent.Properties.Contains(p.Alias) == false)
{
//TODO: Do we return errors here ? If someone deletes a property whilst their editing then should we just
//save the property data that remains? Or inform them they need to reload... not sure. This problem exists currently too i think.