Index: chrome/browser/policy/browser_policy_connector.cc |
diff --git a/chrome/browser/policy/browser_policy_connector.cc b/chrome/browser/policy/browser_policy_connector.cc |
index 288698853607cba13d1b8f39eadbe8e9f12aa5c0..a8f57fdf1b0eeab917a2d7f64ce8b96d87c92dd5 100644 |
--- a/chrome/browser/policy/browser_policy_connector.cc |
+++ b/chrome/browser/policy/browser_policy_connector.cc |
@@ -4,6 +4,8 @@ |
#include "chrome/browser/policy/browser_policy_connector.h" |
+#include <string> |
Joao da Silva
2011/08/31 15:14:44
Nit: already included in .h
|
+ |
#include "base/command_line.h" |
#include "base/path_service.h" |
#include "chrome/browser/net/gaia/token_service.h" |
@@ -213,6 +215,8 @@ void BrowserPolicyConnector::InitializeUserPolicy(const std::string& user_name, |
user_policy_token_cache_->Load(); |
user_data_store_->set_user_name(user_name); |
+ user_data_store_->set_user_affiliation(GetUserAffiliation(user_name)); |
+ |
if (token_service_ && |
token_service_->HasTokenForService( |
GaiaConstants::kDeviceManagementService)) { |
@@ -337,6 +341,21 @@ void BrowserPolicyConnector::InitializeDevicePolicySubsystem() { |
#endif |
} |
+CloudPolicyDataStore::UserAffiliation |
+ BrowserPolicyConnector::GetUserAffiliation(const std::string& user_name) { |
+#if defined(OS_CHROMEOS) |
+ if (install_attributes_.get()) { |
+ size_t pos = user_name.find('@'); |
+ if (pos != std::string::npos && |
+ user_name.substr(pos + 1) == install_attributes_->GetDomain()) { |
+ return CloudPolicyDataStore::USER_AFFILIATION_MANAGED; |
+ } |
+ } |
+#endif |
+ |
+ return CloudPolicyDataStore::USER_AFFILIATION_NONE; |
+} |
+ |
// static |
BrowserPolicyConnector* BrowserPolicyConnector::CreateForTests() { |
const ConfigurationPolicyProvider::PolicyDefinitionList* |