Commit 3aca0d8c authored by pneubeck@chromium.org's avatar pneubeck@chromium.org

Simplify LoginState methods.

No functional change, only making the behavior of the functions more obvious.

Retail mode is obsolete in R38 and later according to crbug.com/372703 and not supported anymore after this change.

BUG=NONE
(for chrome/browser/metrics/perf_provider_chromeos.cc, API usage)
TBR=isherman@chromium.org

Review URL: https://codereview.chromium.org/450363002

Cr-Commit-Position: refs/heads/master@{#288476}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288476 0039d316-1c4b-4281-b951-d872f2087c98
parent dfe9b9b4
......@@ -575,7 +575,8 @@ void WifiConfigView::UpdateErrorLabel() {
if (UserCertRequired() && CertLibrary::Get()->CertificatesLoaded()) {
if (!HaveUserCerts()) {
if (!LoginState::Get()->IsUserLoggedIn() ||
LoginState::Get()->IsGuestUser()) {
LoginState::Get()->IsGuestSessionUser() ||
LoginState::Get()->IsPublicSessionUser()) {
error_msg = l10n_util::GetStringUTF16(
IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_LOGIN_FOR_USER_CERT);
} else {
......
......@@ -29,9 +29,11 @@ SystemSettingsProvider::~SystemSettingsProvider() {
void SystemSettingsProvider::DoSet(const std::string& path,
const base::Value& in_value) {
// Non-guest users can change the time zone.
if (LoginState::Get()->IsGuestUser())
// Only non-guest users can change the time zone.
if (LoginState::Get()->IsGuestSessionUser() ||
LoginState::Get()->IsPublicSessionUser()) {
return;
}
if (path == kSystemTimezone) {
base::string16 timezone_id;
......
......@@ -86,12 +86,10 @@ void AddToPerfHistogram(GetPerfDataOutcome outcome) {
NUM_OUTCOMES);
}
// Returns true if a normal user is logged in. Returns false if logged in as an
// guest or as a kiosk app.
// Returns true if a normal user is logged in. Returns false otherwise (e.g. if
// logged in as a guest or as a kiosk app).
bool IsNormalUserLoggedIn() {
chromeos::LoginState* login_state = chromeos::LoginState::Get();
return (login_state->IsUserLoggedIn() && !login_state->IsGuestUser() &&
!login_state->IsKioskApp());
return chromeos::LoginState::Get()->IsUserAuthenticated();
}
} // namespace
......
......@@ -67,8 +67,8 @@ void LoginState::SetLoggedInStateAndPrimaryUser(
SetLoggedInState(state, type);
}
void LoginState::SetLoggedInState(LoggedInState state,
LoggedInUserType type) {
void LoginState::SetLoggedInState(LoggedInState state, LoggedInUserType type) {
CHECK_NE(LOGGED_IN_USER_RETAIL_MODE, type);
if (state == logged_in_state_ && type == logged_in_user_type_)
return;
VLOG(1) << "LoggedInState: " << state << " UserType: " << type;
......@@ -92,34 +92,22 @@ bool LoginState::IsInSafeMode() const {
return logged_in_state_ == LOGGED_IN_SAFE_MODE;
}
bool LoginState::IsGuestUser() const {
if (!IsUserLoggedIn())
return false;
switch (logged_in_user_type_) {
case LOGGED_IN_USER_NONE:
case LOGGED_IN_USER_REGULAR:
case LOGGED_IN_USER_OWNER:
case LOGGED_IN_USER_SUPERVISED:
case LOGGED_IN_USER_KIOSK_APP:
return false;
case LOGGED_IN_USER_GUEST:
case LOGGED_IN_USER_RETAIL_MODE:
case LOGGED_IN_USER_PUBLIC_ACCOUNT:
return true;
}
NOTREACHED();
return false;
bool LoginState::IsGuestSessionUser() const {
return logged_in_user_type_ == LOGGED_IN_USER_GUEST;
}
bool LoginState::IsPublicSessionUser() const {
return logged_in_user_type_ == LOGGED_IN_USER_PUBLIC_ACCOUNT;
}
bool LoginState::IsKioskApp() const {
return logged_in_user_type_ == LoginState::LOGGED_IN_USER_KIOSK_APP;
return logged_in_user_type_ == LOGGED_IN_USER_KIOSK_APP;
}
bool LoginState::UserHasNetworkProfile() const {
if (!IsUserLoggedIn())
return false;
return logged_in_user_type_ != LOGGED_IN_USER_RETAIL_MODE &&
logged_in_user_type_ != LOGGED_IN_USER_PUBLIC_ACCOUNT;
return logged_in_user_type_ != LOGGED_IN_USER_PUBLIC_ACCOUNT;
}
bool LoginState::IsUserAuthenticated() const {
......
......@@ -26,7 +26,7 @@ class CHROMEOS_EXPORT LoginState {
LOGGED_IN_USER_OWNER, // The owner of the device is logged in
LOGGED_IN_USER_GUEST, // A guest is logged in (i.e. incognito)
LOGGED_IN_USER_RETAIL_MODE, // Is in retail mode
LOGGED_IN_USER_PUBLIC_ACCOUNT, // A public account is logged in
LOGGED_IN_USER_PUBLIC_ACCOUNT, // A user is logged in to a public session.
LOGGED_IN_USER_SUPERVISED, // A supervised user is logged in
LOGGED_IN_USER_KIOSK_APP // Is in kiosk app mode
};
......@@ -72,8 +72,11 @@ class CHROMEOS_EXPORT LoginState {
// logged in, and only the owner will be allowed to log in).
bool IsInSafeMode() const;
// Returns true if logged in and is a guest, retail, or public user.
bool IsGuestUser() const;
// Returns true if logged in to a guest session.
bool IsGuestSessionUser() const;
// Returns true if logged in to a public session.
bool IsPublicSessionUser() const;
// Returns true if logged in as a kiosk app.
bool IsKioskApp() const;
......@@ -81,11 +84,12 @@ class CHROMEOS_EXPORT LoginState {
// Whether a network profile is created for the user.
bool UserHasNetworkProfile() const;
// Returns true if the user is an authenticated user (i.e. non public account)
// Returns true if the user is an authenticated user (i.e. the user is not
// using an anonymous session like public or guest session)
bool IsUserAuthenticated() const;
// Returns true if the user is authenticated by logging into Google account
// (i.e., non public nor supervised account).
// (i.e. not using an anonymous nor supervised session).
bool IsUserGaiaAuthenticated() const;
void set_always_logged_in(bool always_logged_in) {
......
......@@ -140,8 +140,10 @@ void TPMTokenLoader::MaybeStartTokenInitialization() {
tpm_token_state_ = TPM_DISABLED;
// Treat TPM as disabled for guest users since they do not store certs.
if (LoginState::Get()->IsGuestUser())
if (LoginState::Get()->IsGuestSessionUser() ||
LoginState::Get()->IsPublicSessionUser()) {
tpm_token_state_ = TPM_DISABLED;
}
ContinueTokenInitialization();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment