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 |