15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved.
25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be
35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file.
45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef COMPONENTS_USER_MANAGER_USER_INFO_H_
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define COMPONENTS_USER_MANAGER_USER_INFO_H_
75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include <string>
95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/strings/string16.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/user_manager/user_manager_export.h"
125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace gfx {
145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass ImageSkia;
155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}
165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace user_manager {
185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// A class that represents user related info.
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass USER_MANAGER_EXPORT UserInfo {
215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public:
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  UserInfo();
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual ~UserInfo();
245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  // Gets the display name for the user.
265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  virtual base::string16 GetDisplayName() const = 0;
275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  // Gets the given name of the user.
295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  virtual base::string16 GetGivenName() const = 0;
305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  // Gets the display email address for the user.
325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  // The display email address might contains some periods in the email name
335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  // as well as capitalized letters. For example: "Foo.Bar@mock.com".
345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  virtual std::string GetEmail() const = 0;
355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  // Gets the user id (sanitized email address) for the user.
375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  // The function would return something like "foobar@mock.com".
385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  virtual std::string GetUserID() const = 0;
395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  // Gets the avatar image for the user.
415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  virtual const gfx::ImageSkia& GetImage() const = 0;
425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu};
435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace user_manager
455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif  // COMPONENTS_USER_MANAGER_USER_INFO_H_
47