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/policy/profile_policy_connector.h" | 5 #include "chrome/browser/policy/profile_policy_connector.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 connector->GetDeviceActiveDirectoryPolicyManager()); | 91 connector->GetDeviceActiveDirectoryPolicyManager()); |
92 } | 92 } |
93 #endif | 93 #endif |
94 | 94 |
95 if (configuration_policy_provider) | 95 if (configuration_policy_provider) |
96 policy_providers_.push_back(configuration_policy_provider); | 96 policy_providers_.push_back(configuration_policy_provider); |
97 | 97 |
98 #if defined(OS_CHROMEOS) | 98 #if defined(OS_CHROMEOS) |
99 if (!user) { | 99 if (!user) { |
100 DCHECK(schema_registry); | 100 DCHECK(schema_registry); |
101 // This case occurs for the signin profile. | 101 // This case occurs for the signin and the lock screen app profiles. |
102 special_user_policy_provider_.reset( | 102 special_user_policy_provider_.reset( |
103 new LoginProfilePolicyProvider(connector->GetPolicyService())); | 103 new LoginProfilePolicyProvider(connector->GetPolicyService())); |
104 } else { | 104 } else { |
105 // |user| should never be nullptr except for the signin profile. | 105 // |user| should never be nullptr except for the signin and the lock screen |
| 106 // app profile. |
106 is_primary_user_ = | 107 is_primary_user_ = |
107 user == user_manager::UserManager::Get()->GetPrimaryUser(); | 108 user == user_manager::UserManager::Get()->GetPrimaryUser(); |
108 // Note that |DeviceLocalAccountPolicyProvider::Create| returns nullptr when | 109 // Note that |DeviceLocalAccountPolicyProvider::Create| returns nullptr when |
109 // the user supplied is not a device-local account user. | 110 // the user supplied is not a device-local account user. |
110 special_user_policy_provider_ = DeviceLocalAccountPolicyProvider::Create( | 111 special_user_policy_provider_ = DeviceLocalAccountPolicyProvider::Create( |
111 user->GetAccountId().GetUserEmail(), | 112 user->GetAccountId().GetUserEmail(), |
112 connector->GetDeviceLocalAccountPolicyService(), force_immediate_load); | 113 connector->GetDeviceLocalAccountPolicyService(), force_immediate_load); |
113 } | 114 } |
114 if (special_user_policy_provider_) { | 115 if (special_user_policy_provider_) { |
115 special_user_policy_provider_->Init(schema_registry); | 116 special_user_policy_provider_->Init(schema_registry); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 const ConfigurationPolicyProvider* const provider = | 173 const ConfigurationPolicyProvider* const provider = |
173 DeterminePolicyProviderForPolicy(policy_key); | 174 DeterminePolicyProviderForPolicy(policy_key); |
174 return provider == configuration_policy_provider_; | 175 return provider == configuration_policy_provider_; |
175 } | 176 } |
176 | 177 |
177 const CloudPolicyStore* ProfilePolicyConnector::GetActualPolicyStore() const { | 178 const CloudPolicyStore* ProfilePolicyConnector::GetActualPolicyStore() const { |
178 if (policy_store_) | 179 if (policy_store_) |
179 return policy_store_; | 180 return policy_store_; |
180 #if defined(OS_CHROMEOS) | 181 #if defined(OS_CHROMEOS) |
181 if (special_user_policy_provider_) { | 182 if (special_user_policy_provider_) { |
182 // |special_user_policy_provider_| is non-null for device-local accounts and | 183 // |special_user_policy_provider_| is non-null for device-local accounts, |
183 // for the login profile. | 184 // for the login profile, and the lock screen app profile. |
184 const DeviceCloudPolicyManagerChromeOS* const device_cloud_policy_manager = | 185 const DeviceCloudPolicyManagerChromeOS* const device_cloud_policy_manager = |
185 g_browser_process->platform_part() | 186 g_browser_process->platform_part() |
186 ->browser_policy_connector_chromeos() | 187 ->browser_policy_connector_chromeos() |
187 ->GetDeviceCloudPolicyManager(); | 188 ->GetDeviceCloudPolicyManager(); |
188 // The device_cloud_policy_manager can be a nullptr in unit tests. | 189 // The device_cloud_policy_manager can be a nullptr in unit tests. |
189 if (device_cloud_policy_manager) | 190 if (device_cloud_policy_manager) |
190 return device_cloud_policy_manager->core()->store(); | 191 return device_cloud_policy_manager->core()->store(); |
191 } | 192 } |
192 #endif | 193 #endif |
193 return nullptr; | 194 return nullptr; |
194 } | 195 } |
195 | 196 |
196 const ConfigurationPolicyProvider* | 197 const ConfigurationPolicyProvider* |
197 ProfilePolicyConnector::DeterminePolicyProviderForPolicy( | 198 ProfilePolicyConnector::DeterminePolicyProviderForPolicy( |
198 const char* policy_key) const { | 199 const char* policy_key) const { |
199 const PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, ""); | 200 const PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, ""); |
200 for (const ConfigurationPolicyProvider* provider : policy_providers_) { | 201 for (const ConfigurationPolicyProvider* provider : policy_providers_) { |
201 if (provider->policies().Get(chrome_ns).Get(policy_key)) | 202 if (provider->policies().Get(chrome_ns).Get(policy_key)) |
202 return provider; | 203 return provider; |
203 } | 204 } |
204 return nullptr; | 205 return nullptr; |
205 } | 206 } |
206 | 207 |
207 } // namespace policy | 208 } // namespace policy |
OLD | NEW |