OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/chromeos/policy/device_local_account.h" | 5 #include "chrome/browser/chromeos/policy/device_local_account.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
13 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
14 #include "base/values.h" | 14 #include "base/values.h" |
| 15 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h" |
15 #include "chrome/browser/chromeos/settings/cros_settings.h" | 16 #include "chrome/browser/chromeos/settings/cros_settings.h" |
16 #include "chromeos/login/user_names.h" | 17 #include "chromeos/login/user_names.h" |
17 #include "chromeos/settings/cros_settings_names.h" | 18 #include "chromeos/settings/cros_settings_names.h" |
18 #include "google_apis/gaia/gaia_auth_util.h" | 19 #include "google_apis/gaia/gaia_auth_util.h" |
19 | 20 |
20 namespace policy { | 21 namespace policy { |
21 | 22 |
22 namespace { | 23 namespace { |
23 | 24 |
24 const char kPublicAccountDomainPrefix[] = "public-accounts"; | 25 const char kPublicAccountDomainPrefix[] = "public-accounts"; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 return true; | 85 return true; |
85 } | 86 } |
86 | 87 |
87 // |user_id| is a device-local account but its type is not recognized. | 88 // |user_id| is a device-local account but its type is not recognized. |
88 NOTREACHED(); | 89 NOTREACHED(); |
89 if (type) | 90 if (type) |
90 *type = DeviceLocalAccount::TYPE_COUNT; | 91 *type = DeviceLocalAccount::TYPE_COUNT; |
91 return true; | 92 return true; |
92 } | 93 } |
93 | 94 |
94 void SetDeviceLocalAccounts( | 95 void SetDeviceLocalAccounts(chromeos::OwnerSettingsServiceChromeOS* service, |
95 chromeos::CrosSettings* cros_settings, | 96 const std::vector<DeviceLocalAccount>& accounts) { |
96 const std::vector<DeviceLocalAccount>& accounts) { | |
97 base::ListValue list; | 97 base::ListValue list; |
98 for (std::vector<DeviceLocalAccount>::const_iterator it = accounts.begin(); | 98 for (std::vector<DeviceLocalAccount>::const_iterator it = accounts.begin(); |
99 it != accounts.end(); ++it) { | 99 it != accounts.end(); ++it) { |
100 scoped_ptr<base::DictionaryValue> entry(new base::DictionaryValue); | 100 scoped_ptr<base::DictionaryValue> entry(new base::DictionaryValue); |
101 entry->SetStringWithoutPathExpansion( | 101 entry->SetStringWithoutPathExpansion( |
102 chromeos::kAccountsPrefDeviceLocalAccountsKeyId, | 102 chromeos::kAccountsPrefDeviceLocalAccountsKeyId, |
103 it->account_id); | 103 it->account_id); |
104 entry->SetIntegerWithoutPathExpansion( | 104 entry->SetIntegerWithoutPathExpansion( |
105 chromeos::kAccountsPrefDeviceLocalAccountsKeyType, | 105 chromeos::kAccountsPrefDeviceLocalAccountsKeyType, |
106 it->type); | 106 it->type); |
107 if (it->type == DeviceLocalAccount::TYPE_KIOSK_APP) { | 107 if (it->type == DeviceLocalAccount::TYPE_KIOSK_APP) { |
108 entry->SetStringWithoutPathExpansion( | 108 entry->SetStringWithoutPathExpansion( |
109 chromeos::kAccountsPrefDeviceLocalAccountsKeyKioskAppId, | 109 chromeos::kAccountsPrefDeviceLocalAccountsKeyKioskAppId, |
110 it->kiosk_app_id); | 110 it->kiosk_app_id); |
111 if (!it->kiosk_app_update_url.empty()) { | 111 if (!it->kiosk_app_update_url.empty()) { |
112 entry->SetStringWithoutPathExpansion( | 112 entry->SetStringWithoutPathExpansion( |
113 chromeos::kAccountsPrefDeviceLocalAccountsKeyKioskAppUpdateURL, | 113 chromeos::kAccountsPrefDeviceLocalAccountsKeyKioskAppUpdateURL, |
114 it->kiosk_app_update_url); | 114 it->kiosk_app_update_url); |
115 } | 115 } |
116 } | 116 } |
117 list.Append(entry.release()); | 117 list.Append(entry.release()); |
118 } | 118 } |
119 | 119 |
120 cros_settings->Set(chromeos::kAccountsPrefDeviceLocalAccounts, list); | 120 service->Set(chromeos::kAccountsPrefDeviceLocalAccounts, list); |
121 } | 121 } |
122 | 122 |
123 std::vector<DeviceLocalAccount> GetDeviceLocalAccounts( | 123 std::vector<DeviceLocalAccount> GetDeviceLocalAccounts( |
124 chromeos::CrosSettings* cros_settings) { | 124 chromeos::CrosSettings* cros_settings) { |
125 std::vector<DeviceLocalAccount> accounts; | 125 std::vector<DeviceLocalAccount> accounts; |
126 | 126 |
127 const base::ListValue* list = NULL; | 127 const base::ListValue* list = NULL; |
128 cros_settings->GetList(chromeos::kAccountsPrefDeviceLocalAccounts, &list); | 128 cros_settings->GetList(chromeos::kAccountsPrefDeviceLocalAccounts, &list); |
129 if (!list) | 129 if (!list) |
130 return accounts; | 130 return accounts; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 accounts.push_back( | 180 accounts.push_back( |
181 DeviceLocalAccount(static_cast<DeviceLocalAccount::Type>(type), | 181 DeviceLocalAccount(static_cast<DeviceLocalAccount::Type>(type), |
182 account_id, | 182 account_id, |
183 kiosk_app_id, | 183 kiosk_app_id, |
184 kiosk_app_update_url)); | 184 kiosk_app_update_url)); |
185 } | 185 } |
186 return accounts; | 186 return accounts; |
187 } | 187 } |
188 | 188 |
189 } // namespace policy | 189 } // namespace policy |
OLD | NEW |