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

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

Powered by Google App Engine
This is Rietveld 408576698