OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef CHROME_BROWSER_SUPERVISED_USER_LEGACY_SUPERVISED_USER_SYNC_SERVICE_H_ | 5 #ifndef CHROME_BROWSER_SUPERVISED_USER_LEGACY_SUPERVISED_USER_SYNC_SERVICE_H_ |
6 #define CHROME_BROWSER_SUPERVISED_USER_LEGACY_SUPERVISED_USER_SYNC_SERVICE_H_ | 6 #define CHROME_BROWSER_SUPERVISED_USER_LEGACY_SUPERVISED_USER_SYNC_SERVICE_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/callback_forward.h" | 11 #include "base/callback_forward.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 #include "base/observer_list.h" | 13 #include "base/observer_list.h" |
14 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service_obs
erver.h" | 14 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service_obs
erver.h" |
15 #include "chrome/browser/supervised_user/supervised_users.h" | 15 #include "chrome/browser/supervised_user/supervised_users.h" |
16 #include "components/keyed_service/core/keyed_service.h" | 16 #include "components/keyed_service/core/keyed_service.h" |
17 #include "components/signin/core/browser/signin_manager_base.h" | 17 #include "components/signin/core/browser/signin_manager_base.h" |
18 #include "sync/api/syncable_service.h" | 18 #include "sync/api/syncable_service.h" |
19 | 19 |
20 namespace base { | 20 namespace base { |
21 class DictionaryValue; | 21 class DictionaryValue; |
22 } | 22 } |
23 | 23 |
24 namespace user_prefs { | 24 namespace user_prefs { |
25 class PrefRegistrySyncable; | 25 class PrefRegistrySyncable; |
26 } | 26 } |
27 | 27 |
| 28 namespace user_manager { |
| 29 class UserID; |
| 30 } |
| 31 |
28 class PrefService; | 32 class PrefService; |
29 class Profile; | 33 class Profile; |
30 | 34 |
31 class SupervisedUserSyncService : public KeyedService, | 35 class SupervisedUserSyncService : public KeyedService, |
32 public SigninManagerBase::Observer, | 36 public SigninManagerBase::Observer, |
33 public syncer::SyncableService { | 37 public syncer::SyncableService { |
34 public: | 38 public: |
35 // For use with GetSupervisedUsersAsync() below. | 39 // For use with GetSupervisedUsersAsync() below. |
36 typedef base::Callback<void(const base::DictionaryValue*)> | 40 typedef base::Callback<void(const base::DictionaryValue*)> |
37 SupervisedUsersCallback; | 41 SupervisedUsersCallback; |
(...skipping 25 matching lines...) Expand all Loading... |
63 int* avatar_index); | 67 int* avatar_index); |
64 | 68 |
65 // Given an |avatar_index|, it returns a string of the form: | 69 // Given an |avatar_index|, it returns a string of the form: |
66 // "chrome-avatar-index:INDEX" where INDEX = |avatar_index|. | 70 // "chrome-avatar-index:INDEX" where INDEX = |avatar_index|. |
67 // It is exposed for testing purposes only. | 71 // It is exposed for testing purposes only. |
68 static std::string BuildAvatarString(int avatar_index); | 72 static std::string BuildAvatarString(int avatar_index); |
69 | 73 |
70 void AddObserver(SupervisedUserSyncServiceObserver* observer); | 74 void AddObserver(SupervisedUserSyncServiceObserver* observer); |
71 void RemoveObserver(SupervisedUserSyncServiceObserver* observer); | 75 void RemoveObserver(SupervisedUserSyncServiceObserver* observer); |
72 | 76 |
73 void AddSupervisedUser(const std::string& id, | 77 void AddSupervisedUser(const user_manager::UserID& id, |
74 const std::string& name, | 78 const std::string& name, |
75 const std::string& master_key, | 79 const std::string& master_key, |
76 const std::string& signature_key, | 80 const std::string& signature_key, |
77 const std::string& encryption_key, | 81 const std::string& encryption_key, |
78 int avatar_index); | 82 int avatar_index); |
79 void UpdateSupervisedUser(const std::string& id, | 83 void UpdateSupervisedUser(const user_manager::UserID& id, |
80 const std::string& name, | 84 const std::string& name, |
81 const std::string& master_key, | 85 const std::string& master_key, |
82 const std::string& signature_key, | 86 const std::string& signature_key, |
83 const std::string& encryption_key, | 87 const std::string& encryption_key, |
84 int avatar_index); | 88 int avatar_index); |
85 | 89 |
86 void DeleteSupervisedUser(const std::string& id); | 90 void DeleteSupervisedUser(const user_manager::UserID& id); |
87 | 91 |
88 // Updates the supervised user avatar only if the supervised user has | 92 // Updates the supervised user avatar only if the supervised user has |
89 // no avatar and |avatar_index| is set to some value other than | 93 // no avatar and |avatar_index| is set to some value other than |
90 // |kNoAvatar|. If |avatar_index| equals |kNoAvatar| and the | 94 // |kNoAvatar|. If |avatar_index| equals |kNoAvatar| and the |
91 // supervised user has an avatar, it will be cleared. However, | 95 // supervised user has an avatar, it will be cleared. However, |
92 // to clear an avatar call the convenience method | 96 // to clear an avatar call the convenience method |
93 // |ClearSupervisedUserAvatar()|. | 97 // |ClearSupervisedUserAvatar()|. |
94 // Returns true if the avatar value is changed (either updated or cleared) | 98 // Returns true if the avatar value is changed (either updated or cleared) |
95 // and false otherwise. | 99 // and false otherwise. |
96 bool UpdateSupervisedUserAvatarIfNeeded(const std::string& id, | 100 bool UpdateSupervisedUserAvatarIfNeeded(const user_manager::UserID& id, |
97 int avatar_index); | 101 int avatar_index); |
98 void ClearSupervisedUserAvatar(const std::string& id); | 102 void ClearSupervisedUserAvatar(const user_manager::UserID& id); |
99 | 103 |
100 // Returns a dictionary containing all supervised users supervised by this | 104 // Returns a dictionary containing all supervised users supervised by this |
101 // custodian. This method should only be called once this service has started | 105 // custodian. This method should only be called once this service has started |
102 // syncing supervised users (i.e. has finished its initial merge of local and | 106 // syncing supervised users (i.e. has finished its initial merge of local and |
103 // server-side data, via MergeDataAndStartSyncing), as the stored data might | 107 // server-side data, via MergeDataAndStartSyncing), as the stored data might |
104 // be outdated before that. | 108 // be outdated before that. |
105 const base::DictionaryValue* GetSupervisedUsers(); | 109 const base::DictionaryValue* GetSupervisedUsers(); |
106 | 110 |
107 // Calls the passed |callback| with a dictionary containing all supervised | 111 // Calls the passed |callback| with a dictionary containing all supervised |
108 // users managed by this custodian. | 112 // users managed by this custodian. |
(...skipping 25 matching lines...) Expand all Loading... |
134 void GoogleSignedOut(const std::string& account_id, | 138 void GoogleSignedOut(const std::string& account_id, |
135 const std::string& username) override; | 139 const std::string& username) override; |
136 | 140 |
137 scoped_ptr<base::DictionaryValue> CreateDictionary( | 141 scoped_ptr<base::DictionaryValue> CreateDictionary( |
138 const std::string& name, | 142 const std::string& name, |
139 const std::string& master_key, | 143 const std::string& master_key, |
140 const std::string& signature_key, | 144 const std::string& signature_key, |
141 const std::string& encryption_key, | 145 const std::string& encryption_key, |
142 int avatar_index); | 146 int avatar_index); |
143 | 147 |
144 void UpdateSupervisedUserImpl(const std::string& id, | 148 void UpdateSupervisedUserImpl(const user_manager::UserID& id, |
145 const std::string& name, | 149 const std::string& name, |
146 const std::string& master_key, | 150 const std::string& master_key, |
147 const std::string& signature_key, | 151 const std::string& signature_key, |
148 const std::string& encryption_key, | 152 const std::string& encryption_key, |
149 int avatar_index, | 153 int avatar_index, |
150 bool add_user); | 154 bool add_user); |
151 | 155 |
152 void NotifySupervisedUserAcknowledged(const std::string& supervised_user_id); | 156 void NotifySupervisedUserAcknowledged(const user_manager::UserID& supervised_u
ser_id); |
153 void NotifySupervisedUsersSyncingStopped(); | 157 void NotifySupervisedUsersSyncingStopped(); |
154 void NotifySupervisedUsersChanged(); | 158 void NotifySupervisedUsersChanged(); |
155 | 159 |
156 void DispatchCallbacks(); | 160 void DispatchCallbacks(); |
157 | 161 |
158 Profile* profile_; | 162 Profile* profile_; |
159 PrefService* prefs_; | 163 PrefService* prefs_; |
160 | 164 |
161 scoped_ptr<syncer::SyncChangeProcessor> sync_processor_; | 165 scoped_ptr<syncer::SyncChangeProcessor> sync_processor_; |
162 scoped_ptr<syncer::SyncErrorFactory> error_handler_; | 166 scoped_ptr<syncer::SyncErrorFactory> error_handler_; |
163 | 167 |
164 ObserverList<SupervisedUserSyncServiceObserver> observers_; | 168 ObserverList<SupervisedUserSyncServiceObserver> observers_; |
165 | 169 |
166 std::vector<SupervisedUsersCallback> callbacks_; | 170 std::vector<SupervisedUsersCallback> callbacks_; |
167 | 171 |
168 DISALLOW_COPY_AND_ASSIGN(SupervisedUserSyncService); | 172 DISALLOW_COPY_AND_ASSIGN(SupervisedUserSyncService); |
169 }; | 173 }; |
170 | 174 |
171 #endif // CHROME_BROWSER_SUPERVISED_USER_LEGACY_SUPERVISED_USER_SYNC_SERVICE_H_ | 175 #endif // CHROME_BROWSER_SUPERVISED_USER_LEGACY_SUPERVISED_USER_SYNC_SERVICE_H_ |
OLD | NEW |