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

Unified Diff: chrome/browser/chromeos/login/screens/user_selection_screen.cc

Issue 1066843002: Run OAuth token handle check upon user pod selction. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/screens/user_selection_screen.cc
diff --git a/chrome/browser/chromeos/login/screens/user_selection_screen.cc b/chrome/browser/chromeos/login/screens/user_selection_screen.cc
index c86827951204965cf90e5b33c2d6d0670f6f5bee..2156e875ba8628f148baace53f9a2db02cb3f8a4 100644
--- a/chrome/browser/chromeos/login/screens/user_selection_screen.cc
+++ b/chrome/browser/chromeos/login/screens/user_selection_screen.cc
@@ -113,7 +113,8 @@ UserSelectionScreen::UserSelectionScreen(const std::string& display_type)
: handler_(nullptr),
login_display_delegate_(nullptr),
view_(nullptr),
- display_type_(display_type) {
+ display_type_(display_type),
+ weak_factory_(this) {
}
UserSelectionScreen::~UserSelectionScreen() {
@@ -403,6 +404,34 @@ void UserSelectionScreen::HandleGetUsers() {
SendUserList();
}
+void UserSelectionScreen::CheckUserStatus(const std::string& user_id) {
+ // No checks on lock screen.
+ if (ScreenLocker::default_screen_locker())
+ return;
+
+ if (!token_handle_util_.get()) {
+ token_handle_util_.reset(
+ new TokenHandleUtil(user_manager::UserManager::Get()));
+ }
+
+ if (token_handle_util_->HasToken(user_id)) {
+ token_handle_util_->CheckToken(
+ user_id, base::Bind(&UserSelectionScreen::OnUserStatusChecked,
+ weak_factory_.GetWeakPtr()));
+ }
+}
+
+void UserSelectionScreen::OnUserStatusChecked(
+ const user_manager::UserID& user_id,
+ TokenHandleUtil::TokenHandleStatus status) {
+ if (status == TokenHandleUtil::INVALID) {
+ user_manager::UserManager::Get()->SaveUserOAuthStatus(
+ user_id, user_manager::User::OAUTH2_TOKEN_STATUS_INVALID);
+ token_handle_util_->DeleteToken(user_id);
+ SetAuthType(user_id, ONLINE_SIGN_IN, base::string16());
+ }
+}
+
// EasyUnlock stuff
void UserSelectionScreen::SetAuthType(const std::string& user_id,

Powered by Google App Engine
This is Rietveld 408576698