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

Side by Side Diff: chrome/browser/chromeos/login/screens/user_selection_screen.cc

Issue 2563573002: Allow legacy supervised users to login with invalid oath tokens. (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/screens/user_selection_screen.h" 5 #include "chrome/browser/chromeos/login/screens/user_selection_screen.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 user_dict->SetString(kKeyMultiProfilesPolicy, behavior); 225 user_dict->SetString(kKeyMultiProfilesPolicy, behavior);
226 } else { 226 } else {
227 user_dict->SetBoolean(kKeyMultiProfilesAllowed, true); 227 user_dict->SetBoolean(kKeyMultiProfilesAllowed, true);
228 } 228 }
229 } 229 }
230 230
231 // static 231 // static
232 bool UserSelectionScreen::ShouldForceOnlineSignIn( 232 bool UserSelectionScreen::ShouldForceOnlineSignIn(
233 const user_manager::User* user) { 233 const user_manager::User* user) {
234 // Public sessions are always allowed to log in offline. 234 // Public sessions are always allowed to log in offline.
235 // Supervised user are allowed to log in offline if their OAuth token status 235 // Supervised users are always allowed to log in offline.
236 // is unknown or valid.
237 // For all other users, force online sign in if: 236 // For all other users, force online sign in if:
238 // * The flag to force online sign-in is set for the user. 237 // * The flag to force online sign-in is set for the user.
239 // * The user's OAuth token is invalid. 238 // * The user's OAuth token is invalid or unknown.
240 // * The user's OAuth token status is unknown (except supervised users,
241 // see above).
242 if (user->is_logged_in()) 239 if (user->is_logged_in())
243 return false; 240 return false;
244 241
245 const user_manager::User::OAuthTokenStatus token_status = 242 const user_manager::User::OAuthTokenStatus token_status =
246 user->oauth_token_status(); 243 user->oauth_token_status();
247 const bool is_supervised_user = 244 const bool is_supervised_user =
248 user->GetType() == user_manager::USER_TYPE_SUPERVISED; 245 user->GetType() == user_manager::USER_TYPE_SUPERVISED;
249 const bool is_public_session = 246 const bool is_public_session =
250 user->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT; 247 user->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT;
251 248
252 if (is_supervised_user && 249 if (is_supervised_user)
253 token_status == user_manager::User::OAUTH_TOKEN_STATUS_UNKNOWN) {
254 return false; 250 return false;
255 }
256 251
257 if (is_public_session) 252 if (is_public_session)
258 return false; 253 return false;
259 254
260 // At this point the reason for invalid token should be already set. If not, 255 // At this point the reason for invalid token should be already set. If not,
261 // this might be a leftover from an old version. 256 // this might be a leftover from an old version.
262 if (token_status == user_manager::User::OAUTH2_TOKEN_STATUS_INVALID) 257 if (token_status == user_manager::User::OAUTH2_TOKEN_STATUS_INVALID)
263 RecordReauthReason(user->GetAccountId(), ReauthReason::OTHER); 258 RecordReauthReason(user->GetAccountId(), ReauthReason::OTHER);
264 259
265 return user->force_online_signin() || 260 return user->force_online_signin() ||
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 // The user profile should exist if and only if this is the lock screen. 563 // The user profile should exist if and only if this is the lock screen.
569 DCHECK_EQ(!!profile, GetScreenType() == LOCK_SCREEN); 564 DCHECK_EQ(!!profile, GetScreenType() == LOCK_SCREEN);
570 565
571 if (!profile) 566 if (!profile)
572 profile = profile_helper->GetSigninProfile(); 567 profile = profile_helper->GetSigninProfile();
573 568
574 return EasyUnlockService::Get(profile); 569 return EasyUnlockService::Get(profile);
575 } 570 }
576 571
577 } // namespace chromeos 572 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698