Index: chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc |
diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc |
index ff817c71a819052790cd7a62732041dbaa7c876c..39073a62c400a1e121b7485ea5a44649883cd9a5 100644 |
--- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc |
+++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc |
@@ -4,6 +4,8 @@ |
#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" |
+#include <set> |
+ |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
#include "base/logging.h" |
@@ -14,6 +16,7 @@ |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/chromeos/login/helper.h" |
#include "chrome/browser/chromeos/login/session/user_session_manager.h" |
+#include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h" |
#include "chrome/browser/chromeos/policy/policy_oauth2_token_fetcher.h" |
#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h" |
#include "chrome/browser/chromeos/policy/wildcard_login_checker.h" |
@@ -70,6 +73,14 @@ void OnWildcardCheckCompleted(const std::string& username, |
} |
} |
+std::set<std::string> AffiliationIDsToSet(const em::PolicyData& policy_data) { |
Mattias Nissler (ping if slow)
2015/07/29 20:08:13
No need to break out into a separate function.
peletskyi
2015/07/30 11:02:27
Done.
|
+ std::set<std::string> set_of_ids; |
+ for (int i = 0; i < policy_data.user_affiliation_ids_size(); ++i) { |
+ set_of_ids.insert(policy_data.user_affiliation_ids(i)); |
+ } |
Mattias Nissler (ping if slow)
2015/07/29 20:08:13
You can just use std::set::insert as noted in the
peletskyi
2015/07/30 11:02:27
Done.
|
+ return set_of_ids; |
+} |
+ |
} // namespace |
UserCloudPolicyManagerChromeOS::UserCloudPolicyManagerChromeOS( |
@@ -274,6 +285,18 @@ void UserCloudPolicyManagerChromeOS::OnComponentCloudPolicyUpdated() { |
StartRefreshSchedulerIfReady(); |
} |
+void UserCloudPolicyManagerChromeOS::OnStoreLoaded( |
+ CloudPolicyStore* cloud_policy_store) { |
+ CloudPolicyManager::OnStoreLoaded(cloud_policy_store); |
+ |
+ em::PolicyData const* const policy_data = cloud_policy_store->policy(); |
+ if (policy_data && chromeos::ChromeUserManager::Get()) { |
Mattias Nissler (ping if slow)
2015/07/29 20:08:13
Add a comment explaining when and why ChromeUserMa
peletskyi
2015/07/30 11:02:27
No case when ChromeUserManager is NULL found. Cond
|
+ LOG(ERROR) << "Add user affiliation_ids for " << policy_data->username(); |
+ chromeos::ChromeUserManager::Get()->SetUserAffiliation( |
+ policy_data->username(), AffiliationIDsToSet(*policy_data)); |
+ } |
+} |
+ |
void UserCloudPolicyManagerChromeOS::GetChromePolicy(PolicyMap* policy_map) { |
CloudPolicyManager::GetChromePolicy(policy_map); |