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

Side by Side Diff: chrome/browser/chromeos/login/authenticator.h

Issue 286933002: [cros login] Split login related classes into subfolders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix includes in new tests 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
(Empty)
1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_AUTHENTICATOR_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_AUTHENTICATOR_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11 #include "base/memory/ref_counted.h"
12 #include "chrome/browser/chromeos/login/login_status_consumer.h"
13 #include "google_apis/gaia/gaia_auth_consumer.h"
14
15 class Profile;
16
17 namespace chromeos {
18
19 class UserContext;
20
21 // An interface for objects that will authenticate a Chromium OS user.
22 // Callbacks will be called on the UI thread:
23 // 1. On successful authentication, will call consumer_->OnLoginSuccess().
24 // 2. On failure, will call consumer_->OnLoginFailure().
25 // 3. On password change, will call consumer_->OnPasswordChangeDetected().
26 class Authenticator : public base::RefCountedThreadSafe<Authenticator> {
27 public:
28 explicit Authenticator(LoginStatusConsumer* consumer);
29
30 // Given externally authenticated username and password (part of
31 // |user_context|), this method attempts to complete authentication process.
32 virtual void CompleteLogin(Profile* profile,
33 const UserContext& user_context) = 0;
34
35 // Given a user credentials in |user_context|,
36 // this method attempts to authenticate to login.
37 // Must be called on the UI thread.
38 virtual void AuthenticateToLogin(Profile* profile,
39 const UserContext& user_context) = 0;
40
41 // Given a user credentials in |user_context|, this method attempts to
42 // authenticate to unlock the computer.
43 // Must be called on the UI thread.
44 virtual void AuthenticateToUnlock(const UserContext& user_context) = 0;
45
46 // Initiates locally managed user login.
47 virtual void LoginAsLocallyManagedUser(
48 const UserContext& user_context) = 0;
49
50 // Initiates retail mode login.
51 virtual void LoginRetailMode() = 0;
52
53 // Initiates incognito ("browse without signing in") login.
54 virtual void LoginOffTheRecord() = 0;
55
56 // Initiates login into the public account identified by |username|.
57 virtual void LoginAsPublicAccount(const std::string& username) = 0;
58
59 // Initiates login into kiosk mode account identified by |app_user_id|.
60 // The |app_user_id| is a generated username for the account.
61 // |use_guest_mount| specifies whether to force the session to use a
62 // guest mount. If this is false, we use mount a public cryptohome.
63 virtual void LoginAsKioskAccount(const std::string& app_user_id,
64 bool use_guest_mount) = 0;
65
66 // Completes retail mode login.
67 virtual void OnRetailModeLoginSuccess() = 0;
68
69 // Notifies caller that login was successful. Must be called on the UI thread.
70 virtual void OnLoginSuccess() = 0;
71
72 // Must be called on the UI thread.
73 virtual void OnLoginFailure(const LoginFailure& error) = 0;
74
75 // Call these methods on the UI thread.
76 // If a password logs the user in online, but cannot be used to
77 // mount his cryptohome, we expect that a password change has
78 // occurred.
79 // Call this method to migrate the user's encrypted data
80 // forward to use his new password. |old_password| is the password
81 // his data was last encrypted with.
82 virtual void RecoverEncryptedData(
83 const std::string& old_password) = 0;
84
85 // Call this method to erase the user's encrypted data
86 // and create a new cryptohome.
87 virtual void ResyncEncryptedData() = 0;
88
89 // Profile (usually off the record ) that was used to perform the last
90 // authentication process.
91 Profile* authentication_profile() { return authentication_profile_; }
92
93 // Sets consumer explicitly.
94 void SetConsumer(LoginStatusConsumer* consumer);
95
96 protected:
97 virtual ~Authenticator();
98
99 LoginStatusConsumer* consumer_;
100 Profile* authentication_profile_;
101
102 private:
103 friend class base::RefCountedThreadSafe<Authenticator>;
104
105 DISALLOW_COPY_AND_ASSIGN(Authenticator);
106 };
107
108 } // namespace chromeos
109
110 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_AUTHENTICATOR_H_
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/authentication_notification_details.h ('k') | chrome/browser/chromeos/login/authenticator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698