summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/settings/cros_settings.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chromeos/settings/cros_settings.cc')
-rw-r--r--chrome/browser/chromeos/settings/cros_settings.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/settings/cros_settings.cc b/chrome/browser/chromeos/settings/cros_settings.cc
index 96427d2..016b33a 100644
--- a/chrome/browser/chromeos/settings/cros_settings.cc
+++ b/chrome/browser/chromeos/settings/cros_settings.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h"
#include "chrome/browser/chromeos/settings/system_settings_provider.h"
#include "chromeos/chromeos_switches.h"
+#include "chromeos/settings/cros_settings_names.h"
#include "google_apis/gaia/gaia_auth_util.h"
namespace chromeos {
@@ -45,6 +46,24 @@ CrosSettings* CrosSettings::Get() {
return g_cros_settings;
}
+// static
+bool CrosSettings::IsWhitelisted(const std::string& username,
+ bool* wildcard_match) {
+ // Skip whitelist check for tests.
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+ chromeos::switches::kOobeSkipPostLogin)) {
+ return true;
+ }
+
+ CrosSettings* cros_settings = CrosSettings::Get();
+ bool allow_new_user = false;
+ cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user);
+ if (allow_new_user)
+ return true;
+ return cros_settings->FindEmailInList(kAccountsPrefUsers, username,
+ wildcard_match);
+}
+
CrosSettings::CrosSettings(DeviceSettingsService* device_settings_service) {
CrosSettingsProvider::NotifyObserversCallback notify_cb(
base::Bind(&CrosSettings::FireObservers,