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

Side by Side Diff: components/user_manager/user_id.h

Issue 1165323004: We should use UserID object to identify users instead of username. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #ifndef COMPONENTS_USER_MANAGER_USER_ID_H_ 5 #ifndef COMPONENTS_USER_MANAGER_USER_ID_H_
6 #define COMPONENTS_USER_MANAGER_USER_ID_H_ 6 #define COMPONENTS_USER_MANAGER_USER_ID_H_
7 7
8 #include <string> 8 #include <string>
9 #include "base/containers/hash_tables.h"
9 10
10 namespace user_manager { 11 namespace user_manager {
11 12
12 // Type that contains enough information to identify user on ChromeOS. 13 // Type that contains enough information to identify user on ChromeOS.
13 typedef std::string UserID; 14 //typedef std::string UserID;
15
16 class UserID {
17 public:
18 UserID(const std::string& gaia_id, const std::string& user_email);
Denis Kuznetsov (DE-MUC) 2015/06/10 16:50:45 I would make this one private and force using From
19
20 UserID(const UserID& other);
21
22 bool operator==(const UserID& other) const;
23 bool operator!=(const UserID& other) const;
24 bool operator<(const UserID& right) const;
25
26 bool empty() const;
27 void clear();
28
29 const std::string& GetGaiaId() const;
30 const std::string& GetUserEmail() const;
31
32 void SetGaiaId(const std::string& gaia_id);
33 void SetUserEmail(const std::string& email);
34
35 std::string Serialize() const;
36
37 static UserID FromUserEmail(const std::string& user_email);
38 static UserID Deserialize(const std::string& serialized);
39
40 private:
41 std::string gaia_id_;
42 std::string user_email_;
43 };
44
45 // Returns a reference to a singleton.
46 const UserID& EmptyUserID();
14 47
15 } // namespace user_manager 48 } // namespace user_manager
16 49
50 namespace BASE_HASH_NAMESPACE {
51
52 // Implement hashing of UserID, so it can be used as a key in STL containers.
53 template<>
54 struct hash<user_manager::UserID> {
55 std::size_t operator()(const user_manager::UserID& user_id) const;
56 };
57
58 } // namespace BASE_HASH_NAMESPACE
59
17 #endif // COMPONENTS_USER_MANAGER_USER_ID_H_ 60 #endif // COMPONENTS_USER_MANAGER_USER_ID_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698