summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chromeos/policy/device_local_account.cc7
-rw-r--r--chrome/browser/chromeos/policy/device_local_account.h2
-rw-r--r--chrome/browser/policy/browser_policy_connector.cc6
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