diff options
-rw-r--r-- | chrome/browser/chromeos/policy/device_local_account.cc | 7 | ||||
-rw-r--r-- | chrome/browser/chromeos/policy/device_local_account.h | 2 | ||||
-rw-r--r-- | chrome/browser/policy/browser_policy_connector.cc | 6 |
3 files changed, 13 insertions, 2 deletions
diff --git a/chrome/browser/chromeos/policy/device_local_account.cc b/chrome/browser/chromeos/policy/device_local_account.cc index a2c9c09..b48120b 100644 --- a/chrome/browser/chromeos/policy/device_local_account.cc +++ b/chrome/browser/chromeos/policy/device_local_account.cc @@ -8,6 +8,7 @@ #include "base/logging.h" #include "base/memory/scoped_ptr.h" +#include "base/string_util.h" #include "base/strings/string_number_conversions.h" #include "base/values.h" #include "chrome/browser/chromeos/settings/cros_settings.h" @@ -56,6 +57,12 @@ std::string GenerateDeviceLocalAccountUserId(const std::string& account_id, domain_prefix + kDeviceLocalAccountDomainSuffix; } +bool IsDeviceLocalAccountUser(const std::string& user_id) { + return EndsWith(gaia::ExtractDomainName(user_id), + kDeviceLocalAccountDomainSuffix, + true); +} + bool IsKioskAppUser(const std::string& user_id) { return gaia::ExtractDomainName(user_id) == std::string(kKioskAppAccountDomainPrefix) + diff --git a/chrome/browser/chromeos/policy/device_local_account.h b/chrome/browser/chromeos/policy/device_local_account.h index 6d1896e..2b8ad36 100644 --- a/chrome/browser/chromeos/policy/device_local_account.h +++ b/chrome/browser/chromeos/policy/device_local_account.h @@ -42,6 +42,8 @@ struct DeviceLocalAccount { std::string GenerateDeviceLocalAccountUserId(const std::string& account_id, DeviceLocalAccount::Type type); +bool IsDeviceLocalAccountUser(const std::string& user_id); + bool IsKioskAppUser(const std::string& user_id); // Stores a list of device-local accounts in |cros_settings|. The accounts are diff --git a/chrome/browser/policy/browser_policy_connector.cc b/chrome/browser/policy/browser_policy_connector.cc index 393edac..d24d53b 100644 --- a/chrome/browser/policy/browser_policy_connector.cc +++ b/chrome/browser/policy/browser_policy_connector.cc @@ -55,6 +55,7 @@ #include "chrome/browser/chromeos/policy/app_pack_updater.h" #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" #include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h" +#include "chrome/browser/chromeos/policy/device_local_account.h" #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" #include "chrome/browser/chromeos/policy/device_status_collector.h" #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h" @@ -312,8 +313,9 @@ UserAffiliation BrowserPolicyConnector::GetUserAffiliation( if (user_name.empty() || user_name.find('@') == std::string::npos) return USER_AFFILIATION_NONE; if (install_attributes_ && - gaia::ExtractDomainName(gaia::CanonicalizeEmail(user_name)) == - install_attributes_->GetDomain()) { + (gaia::ExtractDomainName(gaia::CanonicalizeEmail(user_name)) == + install_attributes_->GetDomain() || + policy::IsDeviceLocalAccountUser(user_name))) { return USER_AFFILIATION_MANAGED; } #endif |