diff options
| author | Jon Petersson <jon.petersson@kvadrat.se> | 2024-04-10 14:56:20 +0200 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2024-04-15 11:29:23 +0200 |
| commit | c3d575e11f42e13553a34c13da6c9e1f6c24289f (patch) | |
| tree | 2bf50aed27e60e84e376d2b94ea3a1a95d465532 | |
| parent | 8f8bd1d1cbeb3fefa466bdaca5c03e6fe4087833 (diff) | |
| download | mullvadvpn-c3d575e11f42e13553a34c13da6c9e1f6c24289f.tar.xz mullvadvpn-c3d575e11f42e13553a34c13da6c9e1f6c24289f.zip | |
Prevent duplicate list names in custom lists
| -rw-r--r-- | ios/MullvadSettings/CustomListRepository.swift | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ios/MullvadSettings/CustomListRepository.swift b/ios/MullvadSettings/CustomListRepository.swift index 4466b2f9aa..c6709782e2 100644 --- a/ios/MullvadSettings/CustomListRepository.swift +++ b/ios/MullvadSettings/CustomListRepository.swift @@ -39,11 +39,12 @@ public struct CustomListRepository: CustomListRepositoryProtocol { public func save(list: CustomList) throws { var lists = fetchAll() - if let index = lists.firstIndex(where: { $0.id == list.id }) { + if let listWithSameName = lists.first(where: { $0.name.caseInsensitiveCompare(list.name) == .orderedSame }), + listWithSameName.id != list.id { + throw CustomRelayListError.duplicateName + } else if let index = lists.firstIndex(where: { $0.id == list.id }) { lists[index] = list try write(lists) - } else if lists.contains(where: { $0.name == list.name }) { - throw CustomRelayListError.duplicateName } else { lists.append(list) try write(lists) |
