Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Side by Side Diff: chrome/browser/managed_mode/managed_user_sync_service.cc

Issue 100073004: Fix issues with supervised user recreation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add missing imageset statements. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/resources/options/browser_options_profile_list.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/options/browser_options_profile_list.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698