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

Side by Side Diff: chrome/browser/chromeos/login/users/user_manager_impl.cc

Issue 228553002: Preference dis/allowing supervised users creation is now available as owner setting, not only as de… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Using EnterpriseInstallAttributes for getting device status. 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
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/users/user_manager_impl.h" 5 #include "chrome/browser/chromeos/login/users/user_manager_impl.h"
6 6
7 #include <cstddef> 7 #include <cstddef>
8 #include <set> 8 #include <set>
9 9
10 #include "ash/multi_profile_uma.h" 10 #include "ash/multi_profile_uma.h"
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 registrar_.Add(this, chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, 225 registrar_.Add(this, chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED,
226 content::NotificationService::AllSources()); 226 content::NotificationService::AllSources());
227 registrar_.Add(this, 227 registrar_.Add(this,
228 chrome::NOTIFICATION_PROFILE_CREATED, 228 chrome::NOTIFICATION_PROFILE_CREATED,
229 content::NotificationService::AllSources()); 229 content::NotificationService::AllSources());
230 RetrieveTrustedDevicePolicies(); 230 RetrieveTrustedDevicePolicies();
231 local_accounts_subscription_ = cros_settings_->AddSettingsObserver( 231 local_accounts_subscription_ = cros_settings_->AddSettingsObserver(
232 kAccountsPrefDeviceLocalAccounts, 232 kAccountsPrefDeviceLocalAccounts,
233 base::Bind(&UserManagerImpl::RetrieveTrustedDevicePolicies, 233 base::Bind(&UserManagerImpl::RetrieveTrustedDevicePolicies,
234 base::Unretained(this))); 234 base::Unretained(this)));
235 supervised_users_subscription_ = cros_settings_->AddSettingsObserver(
236 kAccountsPrefSupervisedUsersEnabled,
237 base::Bind(&UserManagerImpl::RetrieveTrustedDevicePolicies,
238 base::Unretained(this)));
239 multi_profile_user_controller_.reset(new MultiProfileUserController( 235 multi_profile_user_controller_.reset(new MultiProfileUserController(
240 this, g_browser_process->local_state())); 236 this, g_browser_process->local_state()));
241 237
242 policy::BrowserPolicyConnectorChromeOS* connector = 238 policy::BrowserPolicyConnectorChromeOS* connector =
243 g_browser_process->platform_part()->browser_policy_connector_chromeos(); 239 g_browser_process->platform_part()->browser_policy_connector_chromeos();
244 avatar_policy_observer_.reset(new policy::CloudExternalDataPolicyObserver( 240 avatar_policy_observer_.reset(new policy::CloudExternalDataPolicyObserver(
245 cros_settings_, 241 cros_settings_,
246 this, 242 this,
247 connector->GetDeviceLocalAccountPolicyService(), 243 connector->GetDeviceLocalAccountPolicyService(),
248 policy::key::kUserAvatarImage, 244 policy::key::kUserAvatarImage,
(...skipping 20 matching lines...) Expand all
269 // These are pointers to the same User instances that were in users_ list. 265 // These are pointers to the same User instances that were in users_ list.
270 logged_in_users_.clear(); 266 logged_in_users_.clear();
271 lru_logged_in_users_.clear(); 267 lru_logged_in_users_.clear();
272 268
273 DeleteUser(active_user_); 269 DeleteUser(active_user_);
274 } 270 }
275 271
276 void UserManagerImpl::Shutdown() { 272 void UserManagerImpl::Shutdown() {
277 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 273 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
278 local_accounts_subscription_.reset(); 274 local_accounts_subscription_.reset();
279 supervised_users_subscription_.reset();
280 // Stop the session length limiter. 275 // Stop the session length limiter.
281 session_length_limiter_.reset(); 276 session_length_limiter_.reset();
282 277
283 if (device_local_account_policy_service_) 278 if (device_local_account_policy_service_)
284 device_local_account_policy_service_->RemoveObserver(this); 279 device_local_account_policy_service_->RemoveObserver(this);
285 280
286 for (UserImageManagerMap::iterator it = user_image_managers_.begin(), 281 for (UserImageManagerMap::iterator it = user_image_managers_.begin(),
287 ie = user_image_managers_.end(); 282 ie = user_image_managers_.end();
288 it != ie; ++it) { 283 it != ie; ++it) {
289 it->second->Shutdown(); 284 it->second->Shutdown();
(...skipping 1561 matching lines...) Expand 10 before | Expand all | Expand 10 after
1851 return; 1846 return;
1852 1847
1853 chrome_client_id_ = chrome_client_id; 1848 chrome_client_id_ = chrome_client_id;
1854 chrome_client_secret_ = chrome_client_secret; 1849 chrome_client_secret_ = chrome_client_secret;
1855 } 1850 }
1856 1851
1857 bool UserManagerImpl::AreLocallyManagedUsersAllowed() const { 1852 bool UserManagerImpl::AreLocallyManagedUsersAllowed() const {
1858 bool locally_managed_users_allowed = false; 1853 bool locally_managed_users_allowed = false;
1859 cros_settings_->GetBoolean(kAccountsPrefSupervisedUsersEnabled, 1854 cros_settings_->GetBoolean(kAccountsPrefSupervisedUsersEnabled,
1860 &locally_managed_users_allowed); 1855 &locally_managed_users_allowed);
1861 policy::BrowserPolicyConnectorChromeOS* connector = 1856 return locally_managed_users_allowed;
1862 g_browser_process->platform_part()->browser_policy_connector_chromeos();
1863 return locally_managed_users_allowed || !connector->IsEnterpriseManaged();
1864 } 1857 }
1865 1858
1866 base::FilePath UserManagerImpl::GetUserProfileDir( 1859 base::FilePath UserManagerImpl::GetUserProfileDir(
1867 const std::string& user_id) const { 1860 const std::string& user_id) const {
1868 // TODO(dpolukhin): Remove Chrome OS specific profile path logic from 1861 // TODO(dpolukhin): Remove Chrome OS specific profile path logic from
1869 // ProfileManager and use only this function to construct profile path. 1862 // ProfileManager and use only this function to construct profile path.
1870 // TODO(nkostylev): Cleanup profile dir related code paths crbug.com/294233 1863 // TODO(nkostylev): Cleanup profile dir related code paths crbug.com/294233
1871 base::FilePath profile_dir; 1864 base::FilePath profile_dir;
1872 const User* user = FindUser(user_id); 1865 const User* user = FindUser(user_id);
1873 if (user && !user->username_hash().empty()) 1866 if (user && !user->username_hash().empty())
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
2086 } 2079 }
2087 2080
2088 void UserManagerImpl::DeleteUser(User* user) { 2081 void UserManagerImpl::DeleteUser(User* user) {
2089 const bool is_active_user = (user == active_user_); 2082 const bool is_active_user = (user == active_user_);
2090 delete user; 2083 delete user;
2091 if (is_active_user) 2084 if (is_active_user)
2092 active_user_ = NULL; 2085 active_user_ = NULL;
2093 } 2086 }
2094 2087
2095 } // namespace chromeos 2088 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698