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

Side by Side Diff: chrome/browser/chromeos/policy/device_local_account_policy_service.cc

Issue 14306004: Put Kiosk App parameters into device settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 7 years, 7 months 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/chromeos/policy/device_local_account_policy_service.h" 5 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "chrome/browser/chromeos/policy/device_local_account_policy_store.h" 9 #include "chrome/browser/chromeos/policy/device_local_account_policy_store.h"
10 #include "chrome/browser/policy/cloud/cloud_policy_client.h" 10 #include "chrome/browser/policy/cloud/cloud_policy_client.h"
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 void DeviceLocalAccountPolicyService::UpdateAccountList( 159 void DeviceLocalAccountPolicyService::UpdateAccountList(
160 const em::ChromeDeviceSettingsProto& device_settings) { 160 const em::ChromeDeviceSettingsProto& device_settings) {
161 using google::protobuf::RepeatedPtrField; 161 using google::protobuf::RepeatedPtrField;
162 162
163 // Update |policy_brokers_|, keeping existing entries. 163 // Update |policy_brokers_|, keeping existing entries.
164 PolicyBrokerMap new_policy_brokers; 164 PolicyBrokerMap new_policy_brokers;
165 const RepeatedPtrField<em::DeviceLocalAccountInfoProto>& accounts = 165 const RepeatedPtrField<em::DeviceLocalAccountInfoProto>& accounts =
166 device_settings.device_local_accounts().account(); 166 device_settings.device_local_accounts().account();
167 RepeatedPtrField<em::DeviceLocalAccountInfoProto>::const_iterator entry; 167 RepeatedPtrField<em::DeviceLocalAccountInfoProto>::const_iterator entry;
168 for (entry = accounts.begin(); entry != accounts.end(); ++entry) { 168 for (entry = accounts.begin(); entry != accounts.end(); ++entry) {
169 if (entry->has_id()) { 169 std::string account_id;
170 // Sanity check for whether this account ID has already been processed. 170 if (entry->has_type() &&
171 DeviceLocalAccountPolicyBroker*& new_broker = 171 entry->type() ==
172 new_policy_brokers[entry->id()]; 172 em::DeviceLocalAccountInfoProto::ACCOUNT_TYPE_PUBLIC_SESSION) {
173 if (new_broker) { 173 account_id = entry->account_id();
174 LOG(WARNING) << "Duplicate public account " << entry->id(); 174 } else if (entry->has_id()) {
175 continue; 175 account_id = entry->id();
176 } 176 }
177 177
178 // Reuse the existing broker if present. 178 if (account_id.empty())
179 DeviceLocalAccountPolicyBroker*& existing_broker = 179 continue;
180 policy_brokers_[entry->id()];
181 new_broker = existing_broker;
182 existing_broker = NULL;
183 180
184 // Fire up the cloud connection for fetching policy for the account from 181 // Sanity check for whether this account ID has already been processed.
185 // the cloud if this is an enterprise-managed device. 182 DeviceLocalAccountPolicyBroker*& new_broker =
186 if (!new_broker || !new_broker->core()->client()) { 183 new_policy_brokers[account_id];
187 scoped_ptr<CloudPolicyClient> client( 184 if (new_broker) {
188 CreateClientForAccount(entry->id())); 185 LOG(WARNING) << "Duplicate public account " << account_id;
189 if (client.get()) { 186 continue;
190 if (!new_broker) 187 }
191 new_broker = CreateBroker(entry->id()).release(); 188
192 new_broker->Connect(client.Pass()); 189 // Reuse the existing broker if present.
193 } 190 DeviceLocalAccountPolicyBroker*& existing_broker =
191 policy_brokers_[account_id];
192 new_broker = existing_broker;
193 existing_broker = NULL;
194
195 // Fire up the cloud connection for fetching policy for the account from
196 // the cloud if this is an enterprise-managed device.
197 if (!new_broker || !new_broker->core()->client()) {
198 scoped_ptr<CloudPolicyClient> client(
199 CreateClientForAccount(account_id));
200 if (client.get()) {
201 if (!new_broker)
202 new_broker = CreateBroker(account_id).release();
203 new_broker->Connect(client.Pass());
194 } 204 }
195 } 205 }
196 } 206 }
197 policy_brokers_.swap(new_policy_brokers); 207 policy_brokers_.swap(new_policy_brokers);
198 DeleteBrokers(&new_policy_brokers); 208 DeleteBrokers(&new_policy_brokers);
199 209
200 FOR_EACH_OBSERVER(Observer, observers_, OnDeviceLocalAccountsChanged()); 210 FOR_EACH_OBSERVER(Observer, observers_, OnDeviceLocalAccountsChanged());
201 } 211 }
202 212
203 scoped_ptr<DeviceLocalAccountPolicyBroker> 213 scoped_ptr<DeviceLocalAccountPolicyBroker>
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 scoped_ptr<CloudPolicyClient> client( 259 scoped_ptr<CloudPolicyClient> client(
250 new CloudPolicyClient(std::string(), std::string(), 260 new CloudPolicyClient(std::string(), std::string(),
251 USER_AFFILIATION_MANAGED, 261 USER_AFFILIATION_MANAGED,
252 NULL, device_management_service_)); 262 NULL, device_management_service_));
253 client->SetupRegistration(policy_data->request_token(), 263 client->SetupRegistration(policy_data->request_token(),
254 policy_data->device_id()); 264 policy_data->device_id());
255 return client.Pass(); 265 return client.Pass();
256 } 266 }
257 267
258 } // namespace policy 268 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698