• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "chromeos/login/auth/user_context.h"
6 #include "chromeos/login/user_names.h"
7 
8 namespace chromeos {
9 
UserContext()10 UserContext::UserContext()
11     : is_using_oauth_(true),
12       auth_flow_(AUTH_FLOW_OFFLINE),
13       user_type_(user_manager::USER_TYPE_REGULAR) {
14 }
15 
UserContext(const UserContext & other)16 UserContext::UserContext(const UserContext& other)
17     : user_id_(other.user_id_),
18       key_(other.key_),
19       auth_code_(other.auth_code_),
20       user_id_hash_(other.user_id_hash_),
21       is_using_oauth_(other.is_using_oauth_),
22       auth_flow_(other.auth_flow_),
23       user_type_(other.user_type_),
24       public_session_locale_(other.public_session_locale_),
25       public_session_input_method_(other.public_session_input_method_) {
26 }
27 
UserContext(const std::string & user_id)28 UserContext::UserContext(const std::string& user_id)
29     : user_id_(login::CanonicalizeUserID(user_id)),
30       is_using_oauth_(true),
31       auth_flow_(AUTH_FLOW_OFFLINE),
32       user_type_(user_manager::USER_TYPE_REGULAR) {
33 }
34 
UserContext(user_manager::UserType user_type,const std::string & user_id)35 UserContext::UserContext(user_manager::UserType user_type,
36                          const std::string& user_id)
37     : is_using_oauth_(true),
38       auth_flow_(AUTH_FLOW_OFFLINE),
39       user_type_(user_type) {
40   if (user_type_ == user_manager::USER_TYPE_REGULAR)
41     user_id_ = login::CanonicalizeUserID(user_id);
42   else
43     user_id_ = user_id;
44 }
45 
~UserContext()46 UserContext::~UserContext() {
47 }
48 
operator ==(const UserContext & context) const49 bool UserContext::operator==(const UserContext& context) const {
50   return context.user_id_ == user_id_ &&
51          context.key_ == key_ &&
52          context.auth_code_ == auth_code_ &&
53          context.user_id_hash_ == user_id_hash_ &&
54          context.is_using_oauth_ == is_using_oauth_ &&
55          context.auth_flow_ == auth_flow_ &&
56          context.user_type_ == user_type_ &&
57          context.public_session_locale_ == public_session_locale_ &&
58          context.public_session_input_method_ == public_session_input_method_;
59 }
60 
operator !=(const UserContext & context) const61 bool UserContext::operator!=(const UserContext& context) const {
62   return !(*this == context);
63 }
64 
GetUserID() const65 const std::string& UserContext::GetUserID() const {
66   return user_id_;
67 }
68 
GetKey() const69 const Key* UserContext::GetKey() const {
70   return &key_;
71 }
72 
GetKey()73 Key* UserContext::GetKey() {
74   return &key_;
75 }
76 
GetAuthCode() const77 const std::string& UserContext::GetAuthCode() const {
78   return auth_code_;
79 }
80 
GetUserIDHash() const81 const std::string& UserContext::GetUserIDHash() const {
82   return user_id_hash_;
83 }
84 
IsUsingOAuth() const85 bool UserContext::IsUsingOAuth() const {
86   return is_using_oauth_;
87 }
88 
GetAuthFlow() const89 UserContext::AuthFlow UserContext::GetAuthFlow() const {
90   return auth_flow_;
91 }
92 
GetUserType() const93 user_manager::UserType UserContext::GetUserType() const {
94   return user_type_;
95 }
96 
GetPublicSessionLocale() const97 const std::string& UserContext::GetPublicSessionLocale() const {
98   return public_session_locale_;
99 }
100 
GetPublicSessionInputMethod() const101 const std::string& UserContext::GetPublicSessionInputMethod() const {
102   return public_session_input_method_;
103 }
104 
HasCredentials() const105 bool UserContext::HasCredentials() const {
106   return (!user_id_.empty() && !key_.GetSecret().empty()) ||
107          !auth_code_.empty();
108 }
109 
SetUserID(const std::string & user_id)110 void UserContext::SetUserID(const std::string& user_id) {
111   user_id_ = login::CanonicalizeUserID(user_id);
112 }
113 
SetKey(const Key & key)114 void UserContext::SetKey(const Key& key) {
115   key_ = key;
116 }
117 
SetAuthCode(const std::string & auth_code)118 void UserContext::SetAuthCode(const std::string& auth_code) {
119   auth_code_ = auth_code;
120 }
121 
SetUserIDHash(const std::string & user_id_hash)122 void UserContext::SetUserIDHash(const std::string& user_id_hash) {
123   user_id_hash_ = user_id_hash;
124 }
125 
SetIsUsingOAuth(bool is_using_oauth)126 void UserContext::SetIsUsingOAuth(bool is_using_oauth) {
127   is_using_oauth_ = is_using_oauth;
128 }
129 
SetAuthFlow(AuthFlow auth_flow)130 void UserContext::SetAuthFlow(AuthFlow auth_flow) {
131   auth_flow_ = auth_flow;
132 }
133 
SetUserType(user_manager::UserType user_type)134 void UserContext::SetUserType(user_manager::UserType user_type) {
135   user_type_ = user_type;
136 }
137 
SetPublicSessionLocale(const std::string & locale)138 void UserContext::SetPublicSessionLocale(const std::string& locale) {
139   public_session_locale_ = locale;
140 }
141 
SetPublicSessionInputMethod(const std::string & input_method)142 void UserContext::SetPublicSessionInputMethod(const std::string& input_method) {
143   public_session_input_method_ = input_method;
144 }
145 
ClearSecrets()146 void UserContext::ClearSecrets() {
147   key_.ClearSecret();
148   auth_code_.clear();
149 }
150 
151 }  // namespace chromeos
152