OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/user_manager_impl.h" | 5 #include "chrome/browser/chromeos/login/user_manager_impl.h" |
6 | 6 |
7 #include <cstddef> | 7 #include <cstddef> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 user->set_username_hash(username_hash); | 355 user->set_username_hash(username_hash); |
356 logged_in_users_.push_back(user); | 356 logged_in_users_.push_back(user); |
357 lru_logged_in_users_.push_back(user); | 357 lru_logged_in_users_.push_back(user); |
358 // Reset the new user flag if the user already exists. | 358 // Reset the new user flag if the user already exists. |
359 is_current_user_new_ = false; | 359 is_current_user_new_ = false; |
360 // Set active user wallpaper back. | 360 // Set active user wallpaper back. |
361 WallpaperManager::Get()->SetUserWallpaper(active_user_->email()); | 361 WallpaperManager::Get()->SetUserWallpaper(active_user_->email()); |
362 return; | 362 return; |
363 } | 363 } |
364 | 364 |
| 365 policy::DeviceLocalAccount::Type device_local_account_type; |
365 if (email == UserManager::kGuestUserName) { | 366 if (email == UserManager::kGuestUserName) { |
366 GuestUserLoggedIn(); | 367 GuestUserLoggedIn(); |
367 } else if (email == UserManager::kRetailModeUserName) { | 368 } else if (email == UserManager::kRetailModeUserName) { |
368 RetailModeUserLoggedIn(); | 369 RetailModeUserLoggedIn(); |
369 } else if (policy::IsKioskAppUser(email)) { | 370 } else if (policy::IsDeviceLocalAccountUser(email, |
| 371 &device_local_account_type) && |
| 372 device_local_account_type == |
| 373 policy::DeviceLocalAccount::TYPE_KIOSK_APP) { |
370 KioskAppLoggedIn(email); | 374 KioskAppLoggedIn(email); |
371 } else { | 375 } else { |
372 EnsureUsersLoaded(); | 376 EnsureUsersLoaded(); |
373 | 377 |
374 if (user && user->GetType() == User::USER_TYPE_PUBLIC_ACCOUNT) { | 378 if (user && user->GetType() == User::USER_TYPE_PUBLIC_ACCOUNT) { |
375 PublicAccountUserLoggedIn(user); | 379 PublicAccountUserLoggedIn(user); |
376 } else if ((user && user->GetType() == User::USER_TYPE_LOCALLY_MANAGED) || | 380 } else if ((user && user->GetType() == User::USER_TYPE_LOCALLY_MANAGED) || |
377 (!user && gaia::ExtractDomainName(email) == | 381 (!user && gaia::ExtractDomainName(email) == |
378 UserManager::kLocallyManagedUserDomain)) { | 382 UserManager::kLocallyManagedUserDomain)) { |
379 LocallyManagedUserLoggedIn(email); | 383 LocallyManagedUserLoggedIn(email); |
(...skipping 1015 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1395 active_user_ = user; | 1399 active_user_ = user; |
1396 // The UserImageManager chooses a random avatar picture when a user logs in | 1400 // The UserImageManager chooses a random avatar picture when a user logs in |
1397 // for the first time. Tell the UserImageManager that this user is not new to | 1401 // for the first time. Tell the UserImageManager that this user is not new to |
1398 // prevent the avatar from getting changed. | 1402 // prevent the avatar from getting changed. |
1399 user_image_manager_->UserLoggedIn(user->email(), false, true); | 1403 user_image_manager_->UserLoggedIn(user->email(), false, true); |
1400 WallpaperManager::Get()->EnsureLoggedInUserWallpaperLoaded(); | 1404 WallpaperManager::Get()->EnsureLoggedInUserWallpaperLoaded(); |
1401 } | 1405 } |
1402 | 1406 |
1403 void UserManagerImpl::KioskAppLoggedIn(const std::string& username) { | 1407 void UserManagerImpl::KioskAppLoggedIn(const std::string& username) { |
1404 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1408 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1405 DCHECK(policy::IsKioskAppUser(username)); | 1409 policy::DeviceLocalAccount::Type device_local_account_type; |
| 1410 DCHECK(policy::IsDeviceLocalAccountUser(username, |
| 1411 &device_local_account_type)); |
| 1412 DCHECK_EQ(policy::DeviceLocalAccount::TYPE_KIOSK_APP, |
| 1413 device_local_account_type); |
1406 | 1414 |
1407 active_user_ = User::CreateKioskAppUser(username); | 1415 active_user_ = User::CreateKioskAppUser(username); |
1408 active_user_->SetStubImage(User::kInvalidImageIndex, false); | 1416 active_user_->SetStubImage(User::kInvalidImageIndex, false); |
1409 WallpaperManager::Get()->SetInitialUserWallpaper(username, false); | 1417 WallpaperManager::Get()->SetInitialUserWallpaper(username, false); |
1410 | 1418 |
1411 // TODO(bartfab): Add KioskAppUsers to the users_ list and keep metadata like | 1419 // TODO(bartfab): Add KioskAppUsers to the users_ list and keep metadata like |
1412 // the kiosk_app_id in these objects, removing the need to re-parse the | 1420 // the kiosk_app_id in these objects, removing the need to re-parse the |
1413 // device-local account list here to extract the kiosk_app_id. | 1421 // device-local account list here to extract the kiosk_app_id. |
1414 const std::vector<policy::DeviceLocalAccount> device_local_accounts = | 1422 const std::vector<policy::DeviceLocalAccount> device_local_accounts = |
1415 policy::GetDeviceLocalAccounts(cros_settings_); | 1423 policy::GetDeviceLocalAccounts(cros_settings_); |
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1994 } | 2002 } |
1995 } | 2003 } |
1996 | 2004 |
1997 void UserManagerImpl::OnUserNotAllowed() { | 2005 void UserManagerImpl::OnUserNotAllowed() { |
1998 LOG(ERROR) << "Shutdown session because a user is not allowed to be in the " | 2006 LOG(ERROR) << "Shutdown session because a user is not allowed to be in the " |
1999 "current session"; | 2007 "current session"; |
2000 chrome::AttemptUserExit(); | 2008 chrome::AttemptUserExit(); |
2001 } | 2009 } |
2002 | 2010 |
2003 } // namespace chromeos | 2011 } // namespace chromeos |
OLD | NEW |