Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: chrome/browser/chromeos/login/users/user.cc

Issue 290483003: Tame the proliferation of UserContext constructors (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/login/users/user.h" 5 #include "chrome/browser/chromeos/login/users/user.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/threading/thread_restrictions.h" 10 #include "base/threading/thread_restrictions.h"
11 #include "chrome/browser/chromeos/login/helper.h"
11 #include "chrome/browser/chromeos/login/users/avatar/default_user_images.h" 12 #include "chrome/browser/chromeos/login/users/avatar/default_user_images.h"
12 #include "chrome/browser/chromeos/login/users/user_manager.h" 13 #include "chrome/browser/chromeos/login/users/user_manager.h"
13 #include "google_apis/gaia/gaia_auth_util.h" 14 #include "google_apis/gaia/gaia_auth_util.h"
15 #include "google_apis/gaia/gaia_auth_util.h"
14 #include "grit/theme_resources.h" 16 #include "grit/theme_resources.h"
15 #include "ui/base/resource/resource_bundle.h" 17 #include "ui/base/resource/resource_bundle.h"
16 18
17 namespace chromeos { 19 namespace chromeos {
18 20
19 namespace { 21 namespace {
20 22
21 // Returns account name portion of an email. 23 // Returns account name portion of an email.
22 std::string GetUserName(const std::string& email) { 24 std::string GetUserName(const std::string& email) {
23 std::string::size_type i = email.find('@'); 25 std::string::size_type i = email.find('@');
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 explicit PublicAccountUser(const std::string& email); 102 explicit PublicAccountUser(const std::string& email);
101 virtual ~PublicAccountUser(); 103 virtual ~PublicAccountUser();
102 104
103 // Overridden from User: 105 // Overridden from User:
104 virtual UserType GetType() const OVERRIDE; 106 virtual UserType GetType() const OVERRIDE;
105 107
106 private: 108 private:
107 DISALLOW_COPY_AND_ASSIGN(PublicAccountUser); 109 DISALLOW_COPY_AND_ASSIGN(PublicAccountUser);
108 }; 110 };
109 111
110 UserContext::UserContext() : is_using_oauth_(true), 112 UserContext::UserContext() : does_need_password_hashing_(true),
113 is_using_oauth_(true),
111 auth_flow_(AUTH_FLOW_OFFLINE) { 114 auth_flow_(AUTH_FLOW_OFFLINE) {
112 } 115 }
113 116
114 UserContext::UserContext(const std::string& user_id, 117 UserContext::UserContext(const UserContext& other)
115 const std::string& password, 118 : user_id_(other.user_id_),
116 const std::string& auth_code) 119 password_(other.password_),
117 : user_id_(user_id), 120 does_need_password_hashing_(other.does_need_password_hashing_),
118 password_(password), 121 key_label_(other.key_label_),
122 auth_code_(other.auth_code_),
123 user_id_hash_(other.user_id_hash_),
124 is_using_oauth_(other.is_using_oauth_),
125 auth_flow_(other.auth_flow_) {
126 }
127
128 UserContext::UserContext(const std::string& user_id)
129 : user_id_(login::CanonicalizeUserID(user_id)),
119 does_need_password_hashing_(true), 130 does_need_password_hashing_(true),
120 auth_code_(auth_code),
121 is_using_oauth_(true), 131 is_using_oauth_(true),
122 auth_flow_(AUTH_FLOW_OFFLINE) { 132 auth_flow_(AUTH_FLOW_OFFLINE) {
123 } 133 }
124 134
125 UserContext::UserContext(const std::string& user_id,
126 const std::string& password,
127 const std::string& auth_code,
128 const std::string& user_id_hash)
129 : user_id_(user_id),
130 password_(password),
131 does_need_password_hashing_(true),
132 auth_code_(auth_code),
133 user_id_hash_(user_id_hash),
134 is_using_oauth_(true),
135 auth_flow_(AUTH_FLOW_OFFLINE) {
136 }
137
138 UserContext::UserContext(const std::string& user_id,
139 const std::string& password,
140 const std::string& auth_code,
141 const std::string& user_id_hash,
142 bool is_using_oauth,
143 AuthFlow auth_flow)
144 : user_id_(user_id),
145 password_(password),
146 does_need_password_hashing_(true),
147 auth_code_(auth_code),
148 user_id_hash_(user_id_hash),
149 is_using_oauth_(is_using_oauth),
150 auth_flow_(auth_flow) {
151 }
152
153 UserContext::~UserContext() { 135 UserContext::~UserContext() {
154 } 136 }
155 137
156 bool UserContext::operator==(const UserContext& context) const { 138 bool UserContext::operator==(const UserContext& context) const {
157 return context.user_id_ == user_id_ && 139 return context.user_id_ == user_id_ &&
158 context.password_ == password_ && 140 context.password_ == password_ &&
159 context.does_need_password_hashing_ == does_need_password_hashing_ && 141 context.does_need_password_hashing_ == does_need_password_hashing_ &&
160 context.key_label_ == key_label_ && 142 context.key_label_ == key_label_ &&
161 context.auth_code_ == auth_code_ && 143 context.auth_code_ == auth_code_ &&
162 context.user_id_hash_ == user_id_hash_ && 144 context.user_id_hash_ == user_id_hash_ &&
163 context.is_using_oauth_ == is_using_oauth_ && 145 context.is_using_oauth_ == is_using_oauth_ &&
164 context.auth_flow_ == auth_flow_; 146 context.auth_flow_ == auth_flow_;
165 } 147 }
166 148
167 void UserContext::CopyFrom(const UserContext& other) {
168 user_id_ = other.user_id_;
169 password_ = other.password_;
170 does_need_password_hashing_ = other.does_need_password_hashing_;
171 key_label_ = other.key_label_;
172 auth_code_ = other.auth_code_;
173 user_id_hash_ = other.user_id_hash_;
174 is_using_oauth_ = other.is_using_oauth_;
175 auth_flow_ = other.auth_flow_;
176 }
177
178 const std::string& UserContext::GetUserID() const { 149 const std::string& UserContext::GetUserID() const {
179 return user_id_; 150 return user_id_;
180 } 151 }
181 152
182 const std::string& UserContext::GetPassword() const { 153 const std::string& UserContext::GetPassword() const {
183 return password_; 154 return password_;
184 } 155 }
185 156
186 bool UserContext::DoesNeedPasswordHashing() const { 157 bool UserContext::DoesNeedPasswordHashing() const {
187 return does_need_password_hashing_; 158 return does_need_password_hashing_;
(...skipping 17 matching lines...) Expand all
205 176
206 UserContext::AuthFlow UserContext::GetAuthFlow() const { 177 UserContext::AuthFlow UserContext::GetAuthFlow() const {
207 return auth_flow_; 178 return auth_flow_;
208 } 179 }
209 180
210 bool UserContext::HasCredentials() const { 181 bool UserContext::HasCredentials() const {
211 return (!user_id_.empty() && !password_.empty()) || !auth_code_.empty(); 182 return (!user_id_.empty() && !password_.empty()) || !auth_code_.empty();
212 } 183 }
213 184
214 void UserContext::SetUserID(const std::string& user_id) { 185 void UserContext::SetUserID(const std::string& user_id) {
215 user_id_ = user_id; 186 user_id_ = login::CanonicalizeUserID(user_id);
216 } 187 }
217 188
218 void UserContext::SetPassword(const std::string& password) { 189 void UserContext::SetPassword(const std::string& password) {
219 password_ = password; 190 password_ = password;
220 } 191 }
221 192
222 void UserContext::SetDoesNeedPasswordHashing(bool does_need_password_hashing) { 193 void UserContext::SetDoesNeedPasswordHashing(bool does_need_password_hashing) {
223 does_need_password_hashing_ = does_need_password_hashing; 194 does_need_password_hashing_ = does_need_password_hashing;
224 } 195 }
225 196
226 void UserContext::SetKeyLabel(const std::string& key_label) { 197 void UserContext::SetKeyLabel(const std::string& key_label) {
227 key_label_ = key_label; 198 key_label_ = key_label;
228 } 199 }
229 200
230 void UserContext::SetAuthCode(const std::string& auth_code) { 201 void UserContext::SetAuthCode(const std::string& auth_code) {
231 auth_code_ = auth_code; 202 auth_code_ = auth_code;
232 } 203 }
233 204
234 void UserContext::SetUserIDHash(const std::string& user_id_hash) { 205 void UserContext::SetUserIDHash(const std::string& user_id_hash) {
235 user_id_hash_ = user_id_hash; 206 user_id_hash_ = user_id_hash;
236 } 207 }
237 208
238 void UserContext::SetIsUsingOAuth(bool is_using_oauth) { 209 void UserContext::SetIsUsingOAuth(bool is_using_oauth) {
239 is_using_oauth_ = is_using_oauth; 210 is_using_oauth_ = is_using_oauth;
240 } 211 }
241 212
213 void UserContext::SetAuthFlow(AuthFlow auth_flow) {
214 auth_flow_ = auth_flow;
215 }
216
217 void UserContext::ClearSecrets() {
218 password_.clear();
219 auth_code_.clear();
220 }
221
242 std::string User::GetEmail() const { 222 std::string User::GetEmail() const {
243 return display_email(); 223 return display_email();
244 } 224 }
245 225
246 base::string16 User::GetDisplayName() const { 226 base::string16 User::GetDisplayName() const {
247 // Fallback to the email account name in case display name haven't been set. 227 // Fallback to the email account name in case display name haven't been set.
248 return display_name_.empty() ? 228 return display_name_.empty() ?
249 base::UTF8ToUTF16(GetAccountName(true)) : 229 base::UTF8ToUTF16(GetAccountName(true)) :
250 display_name_; 230 display_name_;
251 } 231 }
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 case USER_TYPE_LOCALLY_MANAGED: 422 case USER_TYPE_LOCALLY_MANAGED:
443 case USER_TYPE_KIOSK_APP: 423 case USER_TYPE_KIOSK_APP:
444 return false; 424 return false;
445 default: 425 default:
446 NOTREACHED(); 426 NOTREACHED();
447 } 427 }
448 return false; 428 return false;
449 } 429 }
450 430
451 } // namespace chromeos 431 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/users/user.h ('k') | chrome/browser/chromeos/login/users/user_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698