Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "components/user_manager/user_manager_base.h" | 5 #include "components/user_manager/user_manager_base.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 639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 650 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 650 DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
| 651 session_state_observer_list_.RemoveObserver(obs); | 651 session_state_observer_list_.RemoveObserver(obs); |
| 652 } | 652 } |
| 653 | 653 |
| 654 void UserManagerBase::NotifyLocalStateChanged() { | 654 void UserManagerBase::NotifyLocalStateChanged() { |
| 655 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 655 DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
| 656 FOR_EACH_OBSERVER( | 656 FOR_EACH_OBSERVER( |
| 657 UserManager::Observer, observer_list_, LocalStateChanged(this)); | 657 UserManager::Observer, observer_list_, LocalStateChanged(this)); |
| 658 } | 658 } |
| 659 | 659 |
| 660 void UserManagerBase::ForceUpdateState() { | |
| 661 UpdateLoginState(); | |
| 662 } | |
| 663 | |
| 664 bool UserManagerBase::CanUserBeRemoved(const User* user) const { | 660 bool UserManagerBase::CanUserBeRemoved(const User* user) const { |
| 665 // Only regular and supervised users are allowed to be manually removed. | 661 // Only regular and supervised users are allowed to be manually removed. |
| 666 if (!user || (user->GetType() != USER_TYPE_REGULAR && | 662 if (!user || (user->GetType() != USER_TYPE_REGULAR && |
| 667 user->GetType() != USER_TYPE_SUPERVISED)) { | 663 user->GetType() != USER_TYPE_SUPERVISED)) { |
| 668 return false; | 664 return false; |
| 669 } | 665 } |
| 670 | 666 |
| 671 // Sanity check: we must not remove single user unless it's an enterprise | 667 // Sanity check: we must not remove single user unless it's an enterprise |
| 672 // device. This check may seem redundant at a first sight because | 668 // device. This check may seem redundant at a first sight because |
| 673 // this single user must be an owner and we perform special check later | 669 // this single user must be an owner and we perform special check later |
| (...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 951 UserAddedToSession(added_user)); | 947 UserAddedToSession(added_user)); |
| 952 } | 948 } |
| 953 | 949 |
| 954 void UserManagerBase::NotifyActiveUserHashChanged(const std::string& hash) { | 950 void UserManagerBase::NotifyActiveUserHashChanged(const std::string& hash) { |
| 955 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 951 DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
| 956 FOR_EACH_OBSERVER(UserManager::UserSessionStateObserver, | 952 FOR_EACH_OBSERVER(UserManager::UserSessionStateObserver, |
| 957 session_state_observer_list_, | 953 session_state_observer_list_, |
| 958 ActiveUserHashChanged(hash)); | 954 ActiveUserHashChanged(hash)); |
| 959 } | 955 } |
| 960 | 956 |
| 957 void UserManagerBase::ChangeUserSupervisedStatus( | |
| 958 User* user, bool is_supervised) { | |
|
Daniel Erat
2014/10/07 16:19:19
nit: one argument per line since they don't all fi
merkulova
2014/10/08 09:47:11
Done.
| |
| 959 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | |
| 960 user->SetIsSupervised(is_supervised); | |
| 961 FOR_EACH_OBSERVER(UserManager::UserSessionStateObserver, | |
| 962 session_state_observer_list_, | |
| 963 UserChangedSupervisedStatus(user)); | |
| 964 } | |
| 965 | |
| 961 void UserManagerBase::UpdateLoginState() { | 966 void UserManagerBase::UpdateLoginState() { |
| 962 if (!chromeos::LoginState::IsInitialized()) | 967 if (!chromeos::LoginState::IsInitialized()) |
| 963 return; // LoginState may not be intialized in tests. | 968 return; // LoginState may not be intialized in tests. |
| 964 | 969 |
| 965 chromeos::LoginState::LoggedInState logged_in_state; | 970 chromeos::LoginState::LoggedInState logged_in_state; |
| 966 logged_in_state = active_user_ ? chromeos::LoginState::LOGGED_IN_ACTIVE | 971 logged_in_state = active_user_ ? chromeos::LoginState::LOGGED_IN_ACTIVE |
| 967 : chromeos::LoginState::LOGGED_IN_NONE; | 972 : chromeos::LoginState::LOGGED_IN_NONE; |
| 968 | 973 |
| 969 chromeos::LoginState::LoggedInUserType login_user_type; | 974 chromeos::LoginState::LoggedInUserType login_user_type; |
| 970 if (logged_in_state == chromeos::LoginState::LOGGED_IN_NONE) | 975 if (logged_in_state == chromeos::LoginState::LOGGED_IN_NONE) |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1054 } | 1059 } |
| 1055 | 1060 |
| 1056 void UserManagerBase::DeleteUser(User* user) { | 1061 void UserManagerBase::DeleteUser(User* user) { |
| 1057 const bool is_active_user = (user == active_user_); | 1062 const bool is_active_user = (user == active_user_); |
| 1058 delete user; | 1063 delete user; |
| 1059 if (is_active_user) | 1064 if (is_active_user) |
| 1060 active_user_ = NULL; | 1065 active_user_ = NULL; |
| 1061 } | 1066 } |
| 1062 | 1067 |
| 1063 } // namespace user_manager | 1068 } // namespace user_manager |
| OLD | NEW |