V8: Duplicate MemberGroup names cause MemberGroup mixup (#11291)
* Prevented duplicate member group names * Added English lang * Updated 'Exist' typo * add labels in FR and NL
This commit is contained in:
@@ -1477,6 +1477,7 @@ To manage your website, simply open the Umbraco backoffice and start adding cont
|
||||
<key alias="mediaTypeSavedHeader">Media Type saved</key>
|
||||
<key alias="memberTypeSavedHeader">Member Type saved</key>
|
||||
<key alias="memberGroupSavedHeader">Member Group saved</key>
|
||||
<key alias="memberGroupNameDuplicate">Another Member Group with the same name already exists</key>
|
||||
<key alias="templateErrorHeader">Template not saved</key>
|
||||
<key alias="templateErrorText">Please make sure that you do not have 2 templates with the same alias</key>
|
||||
<key alias="templateSavedHeader">Template saved</key>
|
||||
|
||||
@@ -1488,6 +1488,7 @@ To manage your website, simply open the Umbraco backoffice and start adding cont
|
||||
<key alias="mediaTypeSavedHeader">Media Type saved</key>
|
||||
<key alias="memberTypeSavedHeader">Member Type saved</key>
|
||||
<key alias="memberGroupSavedHeader">Member Group saved</key>
|
||||
<key alias="memberGroupNameDuplicate">Another Member Group with the same name already exists</key>
|
||||
<key alias="templateErrorHeader">Template not saved</key>
|
||||
<key alias="templateErrorText">Please make sure that you do not have 2 templates with the same alias</key>
|
||||
<key alias="templateSavedHeader">Template saved</key>
|
||||
|
||||
@@ -1411,6 +1411,7 @@ Pour gérer votre site, ouvrez simplement le backoffice Umbraco et commencez à
|
||||
<key alias="mediaTypeSavedHeader">Type de média sauvegardé</key>
|
||||
<key alias="memberTypeSavedHeader">Type de membre sauvegardé</key>
|
||||
<key alias="memberGroupSavedHeader">Groupe de membres sauvegardé</key>
|
||||
<key alias="memberGroupNameDuplicate">Un autre groupe de membres existe déjà avec le même nom</key>
|
||||
<key alias="templateErrorHeader">Modèle non sauvegardé</key>
|
||||
<key alias="templateErrorText">Assurez-vous de ne pas avoir 2 modèles avec le même alias.</key>
|
||||
<key alias="templateSavedHeader">Modèle sauvegardé</key>
|
||||
|
||||
@@ -1276,6 +1276,7 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="mediaTypeSavedHeader">Mediatype opgeslagen</key>
|
||||
<key alias="memberTypeSavedHeader">Ledentype opgeslagen</key>
|
||||
<key alias="memberGroupSavedHeader">Ledengroep opgeslagen</key>
|
||||
<key alias="memberGroupNameDuplicate">Er bestaat al een andere ledengroep met dezelfde naam</key>
|
||||
<key alias="templateErrorHeader">Sjabloon niet opgeslagen</key>
|
||||
<key alias="templateErrorText">Controleer dat je geen 2 sjablonen met dezelfde naam hebt</key>
|
||||
<key alias="templateSavedHeader">Sjabloon opgeslagen</key>
|
||||
|
||||
@@ -135,6 +135,19 @@ namespace Umbraco.Web.Editors
|
||||
return Mapper.Map<IMemberGroup, MemberGroupDisplay>(item);
|
||||
}
|
||||
|
||||
public bool IsMemberGroupNameUnique(int id, string oldName, string newName)
|
||||
{
|
||||
if (newName == oldName)
|
||||
return true; // name hasn't changed
|
||||
|
||||
var service = Services.MemberGroupService;
|
||||
var memberGroup = service.GetByName(newName);
|
||||
if (memberGroup == null)
|
||||
return true; // no member group found
|
||||
|
||||
return memberGroup.Id == id;
|
||||
}
|
||||
|
||||
public MemberGroupDisplay PostSave(MemberGroupSave saveModel)
|
||||
{
|
||||
var service = Services.MemberGroupService;
|
||||
@@ -146,16 +159,27 @@ namespace Umbraco.Web.Editors
|
||||
throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
}
|
||||
|
||||
memberGroup.Name = saveModel.Name;
|
||||
service.Save(memberGroup);
|
||||
if (IsMemberGroupNameUnique(memberGroup.Id, memberGroup.Name, saveModel.Name))
|
||||
{
|
||||
memberGroup.Name = saveModel.Name;
|
||||
service.Save(memberGroup);
|
||||
|
||||
var display = Mapper.Map<IMemberGroup, MemberGroupDisplay>(memberGroup);
|
||||
var display = Mapper.Map<IMemberGroup, MemberGroupDisplay>(memberGroup);
|
||||
display.AddSuccessNotification(
|
||||
Services.TextService.Localize("speechBubbles", "memberGroupSavedHeader"),
|
||||
string.Empty);
|
||||
|
||||
display.AddSuccessNotification(
|
||||
Services.TextService.Localize("speechBubbles", "memberGroupSavedHeader"),
|
||||
string.Empty);
|
||||
return display;
|
||||
}
|
||||
else
|
||||
{
|
||||
var display = Mapper.Map<IMemberGroup, MemberGroupDisplay>(memberGroup);
|
||||
display.AddErrorNotification(
|
||||
Services.TextService.Localize("speechBubbles", "memberGroupNameDuplicate"),
|
||||
string.Empty);
|
||||
|
||||
return display;
|
||||
return display;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user