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

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

Issue 23460030: Clean up device policy definitions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 7 years, 3 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) 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/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
12 #include "base/strings/string_util.h" 12 #include "base/strings/string_util.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/chromeos/settings/cros_settings.h" 14 #include "chrome/browser/chromeos/settings/cros_settings.h"
15 #include "chrome/browser/chromeos/settings/cros_settings_names.h" 15 #include "chrome/browser/chromeos/settings/cros_settings_names.h"
16 #include "google_apis/gaia/gaia_auth_util.h" 16 #include "google_apis/gaia/gaia_auth_util.h"
17 17
18 namespace policy { 18 namespace policy {
19 19
20 namespace { 20 namespace {
21 21
22 const char kPublicAccountDomainPrefix[] = "public-accounts"; 22 const char kPublicAccountDomainPrefix[] = "public-accounts";
23 const char kKioskAppAccountDomainPrefix[] = "kiosk-apps"; 23 const char kKioskAppAccountDomainPrefix[] = "kiosk-apps";
24 const char kDeviceLocalAccountDomainSuffix[] = ".device-local.localhost"; 24 const char kDeviceLocalAccountDomainSuffix[] = ".device-local.localhost";
25 25
26 } // namespace 26 } // namespace
27 27
28 DeviceLocalAccount::DeviceLocalAccount(Type type, 28 DeviceLocalAccount::DeviceLocalAccount(Type type,
29 const std::string& account_id, 29 const std::string& account_id,
30 const std::string& kiosk_app_id, 30 const std::string& kiosk_app_id)
31 const std::string& kiosk_app_update_url)
32 : type(type), 31 : type(type),
33 account_id(account_id), 32 account_id(account_id),
34 user_id(GenerateDeviceLocalAccountUserId(account_id, type)), 33 user_id(GenerateDeviceLocalAccountUserId(account_id, type)),
35 kiosk_app_id(kiosk_app_id), 34 kiosk_app_id(kiosk_app_id) {
36 kiosk_app_update_url(kiosk_app_update_url) {
37 } 35 }
38 36
39 DeviceLocalAccount::~DeviceLocalAccount() { 37 DeviceLocalAccount::~DeviceLocalAccount() {
40 } 38 }
41 39
42 std::string GenerateDeviceLocalAccountUserId(const std::string& account_id, 40 std::string GenerateDeviceLocalAccountUserId(const std::string& account_id,
43 DeviceLocalAccount::Type type) { 41 DeviceLocalAccount::Type type) {
44 std::string domain_prefix; 42 std::string domain_prefix;
45 switch (type) { 43 switch (type) {
46 case DeviceLocalAccount::TYPE_PUBLIC_SESSION: 44 case DeviceLocalAccount::TYPE_PUBLIC_SESSION:
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 entry->SetStringWithoutPathExpansion( 78 entry->SetStringWithoutPathExpansion(
81 chromeos::kAccountsPrefDeviceLocalAccountsKeyId, 79 chromeos::kAccountsPrefDeviceLocalAccountsKeyId,
82 it->account_id); 80 it->account_id);
83 entry->SetIntegerWithoutPathExpansion( 81 entry->SetIntegerWithoutPathExpansion(
84 chromeos::kAccountsPrefDeviceLocalAccountsKeyType, 82 chromeos::kAccountsPrefDeviceLocalAccountsKeyType,
85 it->type); 83 it->type);
86 if (it->type == DeviceLocalAccount::TYPE_KIOSK_APP) { 84 if (it->type == DeviceLocalAccount::TYPE_KIOSK_APP) {
87 entry->SetStringWithoutPathExpansion( 85 entry->SetStringWithoutPathExpansion(
88 chromeos::kAccountsPrefDeviceLocalAccountsKeyKioskAppId, 86 chromeos::kAccountsPrefDeviceLocalAccountsKeyKioskAppId,
89 it->kiosk_app_id); 87 it->kiosk_app_id);
90 if (!it->kiosk_app_update_url.empty()) {
91 entry->SetStringWithoutPathExpansion(
92 chromeos::kAccountsPrefDeviceLocalAccountsKeyKioskAppUpdateURL,
93 it->kiosk_app_update_url);
94 }
95 } 88 }
96 list.Append(entry.release()); 89 list.Append(entry.release());
97 } 90 }
98 91
99 cros_settings->Set(chromeos::kAccountsPrefDeviceLocalAccounts, list); 92 cros_settings->Set(chromeos::kAccountsPrefDeviceLocalAccounts, list);
100 } 93 }
101 94
102 std::vector<DeviceLocalAccount> GetDeviceLocalAccounts( 95 std::vector<DeviceLocalAccount> GetDeviceLocalAccounts(
103 chromeos::CrosSettings* cros_settings) { 96 chromeos::CrosSettings* cros_settings) {
104 std::vector<DeviceLocalAccount> accounts; 97 std::vector<DeviceLocalAccount> accounts;
(...skipping 24 matching lines...) Expand all
129 int type; 122 int type;
130 if (!entry->GetIntegerWithoutPathExpansion( 123 if (!entry->GetIntegerWithoutPathExpansion(
131 chromeos::kAccountsPrefDeviceLocalAccountsKeyType, &type) || 124 chromeos::kAccountsPrefDeviceLocalAccountsKeyType, &type) ||
132 type < 0 || type >= DeviceLocalAccount::TYPE_COUNT) { 125 type < 0 || type >= DeviceLocalAccount::TYPE_COUNT) {
133 LOG(ERROR) << "Missing or invalid account type in device-local account " 126 LOG(ERROR) << "Missing or invalid account type in device-local account "
134 << "list at index " << i << "."; 127 << "list at index " << i << ".";
135 continue; 128 continue;
136 } 129 }
137 130
138 std::string kiosk_app_id; 131 std::string kiosk_app_id;
139 std::string kiosk_app_update_url;
140 if (type == DeviceLocalAccount::TYPE_KIOSK_APP) { 132 if (type == DeviceLocalAccount::TYPE_KIOSK_APP) {
141 if (!entry->GetStringWithoutPathExpansion( 133 if (!entry->GetStringWithoutPathExpansion(
142 chromeos::kAccountsPrefDeviceLocalAccountsKeyKioskAppId, 134 chromeos::kAccountsPrefDeviceLocalAccountsKeyKioskAppId,
143 &kiosk_app_id)) { 135 &kiosk_app_id)) {
144 LOG(ERROR) << "Missing app ID in device-local account entry at index " 136 LOG(ERROR) << "Missing app ID in device-local account entry at index "
145 << i << "."; 137 << i << ".";
146 continue; 138 continue;
147 } 139 }
148 entry->GetStringWithoutPathExpansion(
149 chromeos::kAccountsPrefDeviceLocalAccountsKeyKioskAppUpdateURL,
150 &kiosk_app_update_url);
151 } 140 }
152 141
153 if (!account_ids.insert(account_id).second) { 142 if (!account_ids.insert(account_id).second) {
154 LOG(ERROR) << "Duplicate entry in device-local account list at index " 143 LOG(ERROR) << "Duplicate entry in device-local account list at index "
155 << i << ": " << account_id << "."; 144 << i << ": " << account_id << ".";
156 continue; 145 continue;
157 } 146 }
158 147
159 accounts.push_back(DeviceLocalAccount( 148 accounts.push_back(DeviceLocalAccount(
160 static_cast<DeviceLocalAccount::Type>(type), 149 static_cast<DeviceLocalAccount::Type>(type), account_id, kiosk_app_id));
161 account_id, kiosk_app_id, kiosk_app_update_url));
162 } 150 }
163 return accounts; 151 return accounts;
164 } 152 }
165 153
166 } // namespace policy 154 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698