| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chromeos/login/auth/user_context.h" |
| #include "chromeos/login/user_names.h" |
| |
| namespace chromeos { |
| |
| UserContext::UserContext() : account_id_(EmptyAccountId()) {} |
| |
| UserContext::UserContext(const UserContext& other) |
| : account_id_(other.account_id_), |
| gaia_id_(other.gaia_id_), |
| key_(other.key_), |
| auth_code_(other.auth_code_), |
| refresh_token_(other.refresh_token_), |
| access_token_(other.access_token_), |
| user_id_hash_(other.user_id_hash_), |
| is_using_oauth_(other.is_using_oauth_), |
| auth_flow_(other.auth_flow_), |
| user_type_(other.user_type_), |
| public_session_locale_(other.public_session_locale_), |
| public_session_input_method_(other.public_session_input_method_), |
| device_id_(other.device_id_), |
| gaps_cookie_(other.gaps_cookie_) {} |
| |
| UserContext::UserContext(const AccountId& account_id) |
| : account_id_(account_id) { |
| account_id_.SetUserEmail( |
| login::CanonicalizeUserID(account_id.GetUserEmail())); |
| } |
| |
| UserContext::UserContext(user_manager::UserType user_type, |
| const std::string& user_id) |
| : account_id_(EmptyAccountId()), user_type_(user_type) { |
| if (user_type_ == user_manager::USER_TYPE_REGULAR) |
| account_id_ = AccountId::FromUserEmail(login::CanonicalizeUserID(user_id)); |
| else |
| account_id_ = AccountId::FromUserEmail(user_id); |
| } |
| |
| UserContext::~UserContext() { |
| } |
| |
| bool UserContext::operator==(const UserContext& context) const { |
| return context.account_id_ == account_id_ && context.gaia_id_ == gaia_id_ && |
| context.key_ == key_ && context.auth_code_ == auth_code_ && |
| context.refresh_token_ == refresh_token_ && |
| context.access_token_ == access_token_ && |
| context.user_id_hash_ == user_id_hash_ && |
| context.is_using_oauth_ == is_using_oauth_ && |
| context.auth_flow_ == auth_flow_ && context.user_type_ == user_type_ && |
| context.public_session_locale_ == public_session_locale_ && |
| context.public_session_input_method_ == public_session_input_method_; |
| } |
| |
| bool UserContext::operator!=(const UserContext& context) const { |
| return !(*this == context); |
| } |
| |
| const AccountId& UserContext::GetAccountId() const { |
| return account_id_; |
| } |
| |
| const std::string& UserContext::GetGaiaID() const { |
| return gaia_id_; |
| } |
| |
| const Key* UserContext::GetKey() const { |
| return &key_; |
| } |
| |
| Key* UserContext::GetKey() { |
| return &key_; |
| } |
| |
| const std::string& UserContext::GetAuthCode() const { |
| return auth_code_; |
| } |
| |
| const std::string& UserContext::GetRefreshToken() const { |
| return refresh_token_; |
| } |
| |
| const std::string& UserContext::GetAccessToken() const { |
| return access_token_; |
| } |
| |
| const std::string& UserContext::GetUserIDHash() const { |
| return user_id_hash_; |
| } |
| |
| bool UserContext::IsUsingOAuth() const { |
| return is_using_oauth_; |
| } |
| |
| UserContext::AuthFlow UserContext::GetAuthFlow() const { |
| return auth_flow_; |
| } |
| |
| user_manager::UserType UserContext::GetUserType() const { |
| return user_type_; |
| } |
| |
| const std::string& UserContext::GetPublicSessionLocale() const { |
| return public_session_locale_; |
| } |
| |
| const std::string& UserContext::GetPublicSessionInputMethod() const { |
| return public_session_input_method_; |
| } |
| |
| const std::string& UserContext::GetDeviceId() const { |
| return device_id_; |
| } |
| |
| const std::string& UserContext::GetGAPSCookie() const { |
| return gaps_cookie_; |
| } |
| |
| bool UserContext::HasCredentials() const { |
| return (account_id_.is_valid() && !key_.GetSecret().empty()) || |
| !auth_code_.empty(); |
| } |
| |
| void UserContext::SetUserID(const std::string& user_id) { |
| account_id_ = AccountId::FromUserEmail(login::CanonicalizeUserID(user_id)); |
| } |
| |
| void UserContext::SetGaiaID(const std::string& gaia_id) { |
| gaia_id_ = gaia_id; |
| } |
| |
| void UserContext::SetKey(const Key& key) { |
| key_ = key; |
| } |
| |
| void UserContext::SetAuthCode(const std::string& auth_code) { |
| auth_code_ = auth_code; |
| } |
| |
| void UserContext::SetRefreshToken(const std::string& refresh_token) { |
| refresh_token_ = refresh_token; |
| } |
| |
| void UserContext::SetAccessToken(const std::string& access_token) { |
| access_token_ = access_token; |
| } |
| |
| void UserContext::SetUserIDHash(const std::string& user_id_hash) { |
| user_id_hash_ = user_id_hash; |
| } |
| |
| void UserContext::SetIsUsingOAuth(bool is_using_oauth) { |
| is_using_oauth_ = is_using_oauth; |
| } |
| |
| void UserContext::SetAuthFlow(AuthFlow auth_flow) { |
| auth_flow_ = auth_flow; |
| } |
| |
| void UserContext::SetUserType(user_manager::UserType user_type) { |
| user_type_ = user_type; |
| } |
| |
| void UserContext::SetPublicSessionLocale(const std::string& locale) { |
| public_session_locale_ = locale; |
| } |
| |
| void UserContext::SetPublicSessionInputMethod(const std::string& input_method) { |
| public_session_input_method_ = input_method; |
| } |
| |
| void UserContext::SetDeviceId(const std::string& device_id) { |
| device_id_ = device_id; |
| } |
| |
| void UserContext::SetGAPSCookie(const std::string& gaps_cookie) { |
| gaps_cookie_ = gaps_cookie; |
| } |
| |
| void UserContext::ClearSecrets() { |
| key_.ClearSecret(); |
| auth_code_.clear(); |
| refresh_token_.clear(); |
| } |
| |
| } // namespace chromeos |