Commit af4011d6 authored by antrim@chromium.org's avatar antrim@chromium.org

Handle case in LMU creation when there are no managers available

BUG=229762
R=nkostylev@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16091003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202475 0039d316-1c4b-4281-b951-d872f2087c98
parent 41512b04
......@@ -435,6 +435,9 @@ Press any key to continue exploring.
<message name="IDS_CREATE_LOCALLY_MANAGED_USER_FEATURE_NAME" desc="Title close to icon shown on side of Google sign-in UI to create a locally managed user.">
Locally managed user
</message>
<message name="IDS_CREATE_LOCALLY_MANAGED_USER_NO_MANAGER_TEXT" desc="Text shown when managed user can be created, but no users that can be manager exist.">
At least one account must exist on this device before creating a Limited user.
</message>
<message name="IDS_CREATE_LOCALLY_MANAGED_USER_HTML" desc="Text with actual name shown on side of Google sign-in UI to create a locally managed user.">
<ph name="LINK_START">$1<ex>&gt;a&lt;</ex></ph>Create managed user<ph name="LINK_END">$2<ex>&gt;/a&lt;</ex></ph> for this device.
</message>
......
......@@ -22,6 +22,8 @@
<span i18n-content="createManagedUserFeatureName"></span>
</div>
<div id="createManagedUserLinkPlaceholder"></div>
<div id="createManagedUserNoManagerText"
i18n-content="createManagedUserNoManagerText" hidden></div>
</div>
</div>
</div>
......
......@@ -259,7 +259,12 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
$('createAccount').hidden = !data.createAccount;
$('guestSignin').hidden = !data.guestSignin;
$('createManagedUserPane').hidden = !data.createLocallyManagedUser;
$('createManagedUserPane').hidden = !data.managedUsersEnabled;
$('createManagedUserLinkPlaceholder').hidden =
!data.managedUsersCanCreate;
$('createManagedUserNoManagerText').hidden = data.managedUsersCanCreate;
// Allow cancellation of screen only when user pods can be displayed.
this.cancelAllowed_ = data.isShowUsers && $('pod-row').pods.length;
$('login-header-bar').allowCancel = this.cancelAllowed_;
......
......@@ -178,16 +178,6 @@ void UpdateAuthParamsFromSettings(DictionaryValue* params,
// Account creation depends on Guest sign-in (http://crosbug.com/24570).
params->SetBoolean("createAccount", allow_new_user && allow_guest);
params->SetBoolean("guestSignin", allow_guest);
// TODO(nkostylev): Allow locally managed user creation only if:
// 1. Enterprise managed device > is allowed by policy.
// 2. Consumer device > owner exists.
// g_browser_process->browser_policy_connector()->IsEnterpriseManaged()
// const UserList& users = delegate_->GetUsers();
// bool single_user = users.size() == 1;
// chromeos::CrosSettings::Get()->GetString(chromeos::kDeviceOwner, &owner);
const CommandLine* command_line = CommandLine::ForCurrentProcess();
params->SetBoolean("createLocallyManagedUser",
command_line->HasSwitch(::switches::kEnableManagedUsers));
}
bool IsOnline(NetworkStateInformer::State state,
......@@ -400,6 +390,8 @@ void SigninScreenHandler::DeclareLocalizedValues(
IDS_CREATE_LOCALLY_MANAGED_USER_HTML);
builder->Add("createManagedUserFeatureName",
IDS_CREATE_LOCALLY_MANAGED_USER_FEATURE_NAME);
builder->Add("createManagedUserNoManagerText",
IDS_CREATE_LOCALLY_MANAGED_USER_NO_MANAGER_TEXT);
builder->Add("offlineLogin", IDS_OFFLINE_LOGIN_HTML);
builder->Add("ownerUserPattern", IDS_LOGIN_POD_OWNER_USER);
builder->Add("removeUser", IDS_LOGIN_POD_REMOVE_USER);
......@@ -995,6 +987,28 @@ void SigninScreenHandler::ShowSigninScreenIfReady() {
ErrorScreenActor::ERROR_REASON_UPDATE);
}
void SigninScreenHandler::UpdateAuthParams(DictionaryValue* params) {
UpdateAuthParamsFromSettings(params, CrosSettings::Get());
// TODO(nkostylev): Allow locally managed user creation only if:
// 1. Enterprise managed device > is allowed by policy.
// 2. Consumer device > owner exists.
// g_browser_process->browser_policy_connector()->IsEnterpriseManaged()
// const UserList& users = delegate_->GetUsers();
// bool single_user = users.size() == 1;
// chromeos::CrosSettings::Get()->GetString(chromeos::kDeviceOwner, &owner);
const CommandLine* command_line = CommandLine::ForCurrentProcess();
bool managed_users_enabled =
command_line->HasSwitch(::switches::kEnableManagedUsers);
bool managed_users_can_create = false;
if (managed_users_enabled)
managed_users_can_create = delegate_->GetUsers().size() > 0;
params->SetBoolean("managedUsersEnabled", managed_users_enabled);
params->SetBoolean("managedUsersCanCreate", managed_users_can_create);
}
void SigninScreenHandler::LoadAuthExtension(
bool force, bool silent_load, bool offline) {
DictionaryValue params;
......@@ -1010,7 +1024,7 @@ void SigninScreenHandler::LoadAuthExtension(
params.SetString("email", email_);
email_.clear();
UpdateAuthParamsFromSettings(&params, CrosSettings::Get());
UpdateAuthParams(&params);
if (!offline) {
const std::string app_locale = g_browser_process->GetApplicationLocale();
......@@ -1055,7 +1069,7 @@ void SigninScreenHandler::LoadAuthExtension(
void SigninScreenHandler::UpdateAuthExtension() {
DictionaryValue params;
UpdateAuthParamsFromSettings(&params, CrosSettings::Get());
UpdateAuthParams(&params);
CallJS("login.GaiaSigninScreen.updateAuthExtension", params);
}
......
......@@ -271,6 +271,9 @@ class SigninScreenHandler
void UpdateAuthExtension();
void UpdateAddButtonStatus();
// Fill |params| that are passed to JS..
void UpdateAuthParams(DictionaryValue* params);
// Restore input focus to current user pod.
void RefocusCurrentPod();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment