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

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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/ui/webui/chromeos/login/gaia_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" 10 #include "chrome/browser/chromeos/login/ui/user_adding_screen.h"
11 #include "chrome/browser/chromeos/login/users/user_manager.h" 11 #include "chrome/browser/chromeos/login/users/user_manager.h"
12 #include "chrome/browser/chromeos/settings/cros_settings.h" 12 #include "chrome/browser/chromeos/settings/cros_settings.h"
13 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" 13 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
14 #include "chrome/common/pref_names.h"
14 #include "chromeos/settings/cros_settings_names.h" 15 #include "chromeos/settings/cros_settings_names.h"
15 #include "google_apis/gaia/gaia_switches.h" 16 #include "google_apis/gaia/gaia_switches.h"
16 #include "google_apis/gaia/gaia_urls.h" 17 #include "google_apis/gaia/gaia_urls.h"
17 #include "grit/chromium_strings.h" 18 #include "grit/chromium_strings.h"
18 #include "grit/generated_resources.h" 19 #include "grit/generated_resources.h"
19 #include "ui/base/l10n/l10n_util.h" 20 #include "ui/base/l10n/l10n_util.h"
20 21
21 namespace chromeos { 22 namespace chromeos {
22 23
23 namespace { 24 namespace {
24 25
25 const char kJsScreenPath[] = "login.GaiaSigninScreen"; 26 const char kJsScreenPath[] = "login.GaiaSigninScreen";
26 27
27 // Updates params dictionary passed to the auth extension with related 28 void UpdateAuthParams(base::DictionaryValue* params, bool has_users) {
28 // preferences from CrosSettings. 29 CrosSettings* cros_settings = CrosSettings::Get();
29 void UpdateAuthParamsFromSettings(base::DictionaryValue* params,
30 const CrosSettings* cros_settings) {
31 bool allow_new_user = true; 30 bool allow_new_user = true;
32 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user); 31 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user);
33 bool allow_guest = true; 32 bool allow_guest = true;
34 cros_settings->GetBoolean(kAccountsPrefAllowGuest, &allow_guest); 33 cros_settings->GetBoolean(kAccountsPrefAllowGuest, &allow_guest);
35 // Account creation depends on Guest sign-in (http://crosbug.com/24570). 34 // Account creation depends on Guest sign-in (http://crosbug.com/24570).
36 params->SetBoolean("createAccount", allow_new_user && allow_guest); 35 params->SetBoolean("createAccount", allow_new_user && allow_guest);
37 params->SetBoolean("guestSignin", allow_guest); 36 params->SetBoolean("guestSignin", allow_guest);
38 }
39
40 void UpdateAuthParams(base::DictionaryValue* params, bool has_users) {
41 UpdateAuthParamsFromSettings(params, CrosSettings::Get());
42 37
43 // Allow locally managed user creation only if: 38 // Allow locally managed user creation only if:
44 // 1. Enterprise managed device > is allowed by policy. 39 // 1. Enterprise managed device > is allowed by policy.
45 // 2. Consumer device > owner exists. 40 // 2. Consumer device > owner exists.
46 // 3. New users are allowed by owner. 41 // 3. New users are allowed by owner.
47 42 // 4. Supervised users are allowed by owner.
48 CrosSettings* cros_settings = CrosSettings::Get();
49 bool allow_new_user = false;
50 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user);
51
52 bool managed_users_allowed = 43 bool managed_users_allowed =
53 UserManager::Get()->AreLocallyManagedUsersAllowed(); 44 UserManager::Get()->AreLocallyManagedUsersAllowed();
54 bool managed_users_can_create = true; 45 bool managed_users_can_create = true;
55 int message_id = -1; 46 int message_id = -1;
56 if (!has_users) { 47 if (!has_users) {
57 managed_users_can_create = false; 48 managed_users_can_create = false;
58 message_id = IDS_CREATE_LOCALLY_MANAGED_USER_NO_MANAGER_TEXT; 49 message_id = IDS_CREATE_LOCALLY_MANAGED_USER_NO_MANAGER_TEXT;
59 } 50 }
60 if (!allow_new_user) { 51 if (!allow_new_user || !managed_users_allowed) {
61 managed_users_can_create = false; 52 managed_users_can_create = false;
62 message_id = IDS_CREATE_LOCALLY_MANAGED_USER_CREATION_RESTRICTED_TEXT; 53 message_id = IDS_CREATE_LOCALLY_MANAGED_USER_CREATION_RESTRICTED_TEXT;
63 } 54 }
64 55
65 params->SetBoolean("managedUsersEnabled", managed_users_allowed); 56 params->SetBoolean("managedUsersEnabled", managed_users_allowed);
66 params->SetBoolean("managedUsersCanCreate", managed_users_can_create); 57 params->SetBoolean("managedUsersCanCreate", managed_users_can_create);
67 if (!managed_users_can_create) { 58 if (!managed_users_can_create) {
68 params->SetString("managedUsersRestrictionReason", 59 params->SetString("managedUsersRestrictionReason",
69 l10n_util::GetStringUTF16(message_id)); 60 l10n_util::GetStringUTF16(message_id));
70 } 61 }
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 void GaiaScreenHandler::UpdateState(ErrorScreenActor::ErrorReason reason) { 218 void GaiaScreenHandler::UpdateState(ErrorScreenActor::ErrorReason reason) {
228 if (signin_screen_handler_) 219 if (signin_screen_handler_)
229 signin_screen_handler_->UpdateState(reason); 220 signin_screen_handler_->UpdateState(reason);
230 } 221 }
231 222
232 void GaiaScreenHandler::SetSigninScreenHandler(SigninScreenHandler* handler) { 223 void GaiaScreenHandler::SetSigninScreenHandler(SigninScreenHandler* handler) {
233 signin_screen_handler_ = handler; 224 signin_screen_handler_ = handler;
234 } 225 }
235 226
236 } // namespace chromeos 227 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698