| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/managed_mode/managed_user_sync_service.h" | 5 #include "chrome/browser/managed_mode/managed_user_sync_service.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/prefs/scoped_user_pref_update.h" | 9 #include "base/prefs/scoped_user_pref_update.h" |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 const std::string& name, | 45 const std::string& name, |
| 46 bool acknowledged, | 46 bool acknowledged, |
| 47 const std::string& master_key, | 47 const std::string& master_key, |
| 48 const std::string& chrome_avatar, | 48 const std::string& chrome_avatar, |
| 49 const std::string& chromeos_avatar) { | 49 const std::string& chromeos_avatar) { |
| 50 ::sync_pb::EntitySpecifics specifics; | 50 ::sync_pb::EntitySpecifics specifics; |
| 51 specifics.mutable_managed_user()->set_id(id); | 51 specifics.mutable_managed_user()->set_id(id); |
| 52 specifics.mutable_managed_user()->set_name(name); | 52 specifics.mutable_managed_user()->set_name(name); |
| 53 if (!chrome_avatar.empty()) | 53 if (!chrome_avatar.empty()) |
| 54 specifics.mutable_managed_user()->set_chrome_avatar(chrome_avatar); | 54 specifics.mutable_managed_user()->set_chrome_avatar(chrome_avatar); |
| 55 else | |
| 56 specifics.mutable_managed_user()->clear_chrome_avatar(); | |
| 57 if (!chromeos_avatar.empty()) | 55 if (!chromeos_avatar.empty()) |
| 58 specifics.mutable_managed_user()->set_chromeos_avatar(chromeos_avatar); | 56 specifics.mutable_managed_user()->set_chromeos_avatar(chromeos_avatar); |
| 59 if (!master_key.empty()) | 57 if (!master_key.empty()) |
| 60 specifics.mutable_managed_user()->set_master_key(master_key); | 58 specifics.mutable_managed_user()->set_master_key(master_key); |
| 61 if (acknowledged) | 59 if (acknowledged) |
| 62 specifics.mutable_managed_user()->set_acknowledged(true); | 60 specifics.mutable_managed_user()->set_acknowledged(true); |
| 63 return SyncData::CreateLocalData(id, name, specifics); | 61 return SyncData::CreateLocalData(id, name, specifics); |
| 64 } | 62 } |
| 65 | 63 |
| 66 SyncData CreateSyncDataFromDictionaryEntry( | 64 SyncData CreateSyncDataFromDictionaryEntry( |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 // static | 106 // static |
| 109 void ManagedUserSyncService::RegisterProfilePrefs( | 107 void ManagedUserSyncService::RegisterProfilePrefs( |
| 110 PrefRegistrySyncable* registry) { | 108 PrefRegistrySyncable* registry) { |
| 111 registry->RegisterDictionaryPref(prefs::kManagedUsers, | 109 registry->RegisterDictionaryPref(prefs::kManagedUsers, |
| 112 PrefRegistrySyncable::UNSYNCABLE_PREF); | 110 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 113 } | 111 } |
| 114 | 112 |
| 115 // static | 113 // static |
| 116 bool ManagedUserSyncService::GetAvatarIndex(const std::string& avatar_str, | 114 bool ManagedUserSyncService::GetAvatarIndex(const std::string& avatar_str, |
| 117 int* avatar_index) { | 115 int* avatar_index) { |
| 118 // TODO(ibraaaa): when chrome OS supports supervised users avatar syncing | |
| 119 // then update this method to support extracting the avatar index | |
| 120 // for chrome OS as well. | |
| 121 DCHECK(avatar_index); | 116 DCHECK(avatar_index); |
| 122 if (avatar_str.empty()) { | 117 if (avatar_str.empty()) { |
| 123 *avatar_index = kNoAvatar; | 118 *avatar_index = kNoAvatar; |
| 124 return true; | 119 return true; |
| 125 } | 120 } |
| 126 #if defined(OS_CHROMEOS) | 121 #if defined(OS_CHROMEOS) |
| 127 const char* prefix = kChromeOSAvatarPrefix; | 122 const char* prefix = kChromeOSAvatarPrefix; |
| 128 #else | 123 #else |
| 129 const char* prefix = kChromeAvatarPrefix; | 124 const char* prefix = kChromeAvatarPrefix; |
| 130 #endif | 125 #endif |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 DictionaryValue* value = NULL; | 220 DictionaryValue* value = NULL; |
| 226 bool success = dict->GetDictionaryWithoutPathExpansion(id, &value); | 221 bool success = dict->GetDictionaryWithoutPathExpansion(id, &value); |
| 227 DCHECK(success); | 222 DCHECK(success); |
| 228 | 223 |
| 229 bool acknowledged = false; | 224 bool acknowledged = false; |
| 230 value->GetBoolean(ManagedUserSyncService::kAcknowledged, &acknowledged); | 225 value->GetBoolean(ManagedUserSyncService::kAcknowledged, &acknowledged); |
| 231 std::string name; | 226 std::string name; |
| 232 value->GetString(ManagedUserSyncService::kName, &name); | 227 value->GetString(ManagedUserSyncService::kName, &name); |
| 233 std::string master_key; | 228 std::string master_key; |
| 234 value->GetString(ManagedUserSyncService::kMasterKey, &master_key); | 229 value->GetString(ManagedUserSyncService::kMasterKey, &master_key); |
| 235 // TODO(ibraaaa): this should be updated when avatar syncing for | |
| 236 // supervised users is implemented on Chrome OS. | |
| 237 std::string chromeos_avatar; | 230 std::string chromeos_avatar; |
| 238 value->GetString(ManagedUserSyncService::kChromeOsAvatar, &chromeos_avatar); | 231 value->GetString(ManagedUserSyncService::kChromeOsAvatar, &chromeos_avatar); |
| 239 std::string chrome_avatar; | 232 std::string chrome_avatar; |
| 240 value->GetString(ManagedUserSyncService::kChromeAvatar, &chrome_avatar); | 233 value->GetString(ManagedUserSyncService::kChromeAvatar, &chrome_avatar); |
| 234 // The following check is just for safety. We want to avoid that the existing |
| 235 // avatar selection is overwritten. Currently we don't allow the user to |
| 236 // choose a different avatar in the recreation dialog, anyway, if there is |
| 237 // already an avatar selected. |
| 238 #if defined(OS_CHROMEOS) |
| 239 if (!chromeos_avatar.empty() && avatar_index != kNoAvatar) |
| 240 return false; |
| 241 #else |
| 241 if (!chrome_avatar.empty() && avatar_index != kNoAvatar) | 242 if (!chrome_avatar.empty() && avatar_index != kNoAvatar) |
| 242 return false; | 243 return false; |
| 244 #endif |
| 243 | 245 |
| 244 chrome_avatar = avatar_index == kNoAvatar ? | 246 chrome_avatar = avatar_index == kNoAvatar ? |
| 245 std::string() : BuildAvatarString(avatar_index); | 247 std::string() : BuildAvatarString(avatar_index); |
| 248 #if defined(OS_CHROMEOS) |
| 249 value->SetString(kChromeOsAvatar, chrome_avatar); |
| 250 #else |
| 246 value->SetString(kChromeAvatar, chrome_avatar); | 251 value->SetString(kChromeAvatar, chrome_avatar); |
| 252 #endif |
| 247 | 253 |
| 248 if (!sync_processor_) | 254 if (!sync_processor_) |
| 249 return true; | 255 return true; |
| 250 | 256 |
| 251 SyncChangeList change_list; | 257 SyncChangeList change_list; |
| 252 change_list.push_back(SyncChange( | 258 change_list.push_back(SyncChange( |
| 253 FROM_HERE, | 259 FROM_HERE, |
| 254 SyncChange::ACTION_UPDATE, | 260 SyncChange::ACTION_UPDATE, |
| 255 CreateLocalSyncData(id, name, acknowledged, master_key, | 261 CreateLocalSyncData(id, name, acknowledged, master_key, |
| 256 chrome_avatar, chromeos_avatar))); | 262 chrome_avatar, chromeos_avatar))); |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 | 437 |
| 432 void ManagedUserSyncService::DispatchCallbacks() { | 438 void ManagedUserSyncService::DispatchCallbacks() { |
| 433 const DictionaryValue* managed_users = | 439 const DictionaryValue* managed_users = |
| 434 prefs_->GetDictionary(prefs::kManagedUsers); | 440 prefs_->GetDictionary(prefs::kManagedUsers); |
| 435 for (std::vector<ManagedUsersCallback>::iterator it = callbacks_.begin(); | 441 for (std::vector<ManagedUsersCallback>::iterator it = callbacks_.begin(); |
| 436 it != callbacks_.end(); ++it) { | 442 it != callbacks_.end(); ++it) { |
| 437 it->Run(managed_users); | 443 it->Run(managed_users); |
| 438 } | 444 } |
| 439 callbacks_.clear(); | 445 callbacks_.clear(); |
| 440 } | 446 } |
| OLD | NEW |