desk_template_util.cc 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/desks_storage/core/desk_template_util.h"
  5. namespace desks_storage {
  6. namespace desk_template_util {
  7. ash::DeskTemplate* FindOtherEntryWithName(
  8. const std::u16string& name,
  9. const base::GUID& uuid,
  10. const std::map<base::GUID, std::unique_ptr<ash::DeskTemplate>>& entries) {
  11. auto iter = std::find_if(
  12. entries.begin(), entries.end(),
  13. [name, uuid](const std::pair<const base::GUID,
  14. std::unique_ptr<ash::DeskTemplate>>& entry) {
  15. // Name duplication is allowed if one of the templates is an admin
  16. // template.
  17. return (entry.second->uuid() != uuid &&
  18. entry.second->template_name() == name &&
  19. entry.second->source() != ash::DeskTemplateSource::kPolicy);
  20. });
  21. if (iter == entries.end()) {
  22. return nullptr;
  23. }
  24. return iter->second.get();
  25. }
  26. } // namespace desk_template_util
  27. } // namespace desks_storage