diff options
3 files changed, 20 insertions, 2 deletions
diff --git a/chrome/browser/chromeos/dom_ui/internet_options_handler.cc b/chrome/browser/chromeos/dom_ui/internet_options_handler.cc index d3c60bc..fa0245f 100644 --- a/chrome/browser/chromeos/dom_ui/internet_options_handler.cc +++ b/chrome/browser/chromeos/dom_ui/internet_options_handler.cc @@ -24,6 +24,7 @@ #include "chrome/browser/browser_list.h" #include "chrome/browser/browser_window.h" #include "chrome/browser/chromeos/cros/cros_library.h" +#include "chrome/browser/chromeos/login/ownership_service.h" #include "chrome/browser/chromeos/status/network_menu.h" #include "chrome/browser/dom_ui/dom_ui_util.h" #include "chrome/browser/tab_contents/tab_contents.h" @@ -542,6 +543,12 @@ void InternetOptionsHandler::SetDetailsCallback(const ListValue* args) { NOTREACHED(); return; } + + if (!chromeos::OwnershipService::GetSharedInstance()->CurrentUserIsOwner()) { + LOG(WARNING) << "Non-owner tried to change a network."; + return; + } + chromeos::NetworkLibrary* cros = chromeos::CrosLibrary::Get()->GetNetworkLibrary(); chromeos::WifiNetwork* network = cros->FindWifiNetworkByPath(service_path); @@ -794,6 +801,9 @@ void InternetOptionsHandler::ButtonClickCallback(const ListValue* args) { return; } + bool is_owner = + chromeos::OwnershipService::GetSharedInstance()->CurrentUserIsOwner(); + int type = atoi(str_type.c_str()); chromeos::NetworkLibrary* cros = chromeos::CrosLibrary::Get()->GetNetworkLibrary(); @@ -804,6 +814,10 @@ void InternetOptionsHandler::ButtonClickCallback(const ListValue* args) { } else if (type == chromeos::TYPE_WIFI) { chromeos::WifiNetwork* network; if (command == "forget") { + if (!is_owner) { + LOG(WARNING) << "Non-owner tried to forget a network."; + return; + } cros->ForgetWifiNetwork(service_path); } else if ((network = cros->FindWifiNetworkByPath(service_path))) { if (command == "connect") { diff --git a/chrome/browser/resources/options/chromeos_internet_network_element.js b/chrome/browser/resources/options/chromeos_internet_network_element.js index bf58004..7541f2b 100644 --- a/chrome/browser/resources/options/chromeos_internet_network_element.js +++ b/chrome/browser/resources/options/chromeos_internet_network_element.js @@ -241,8 +241,8 @@ cr.define('options.internet', function() { self.data.servicePath, 'forget']); }); - if (cr.commandLine.options['--bwsi']) { - // Disable this for guest session(bwsi). + if (!AccountsOptions.currentUserIsOwner()) { + // Disable this for guest non-Owners. button.disabled = true; } diff --git a/chrome/browser/resources/options/chromeos_internet_options.js b/chrome/browser/resources/options/chromeos_internet_options.js index 8b9718f..b3105e5 100644 --- a/chrome/browser/resources/options/chromeos_internet_options.js +++ b/chrome/browser/resources/options/chromeos_internet_options.js @@ -236,6 +236,10 @@ cr.define('options', function() { page.removeAttribute('gsm'); $('inetSsid').textContent = data.ssid; $('rememberNetwork').checked = data.autoConnect; + if (!AccountsOptions.currentUserIsOwner()) { + // Disable this for guest non-Owners. + $('rememberNetwork').disabled = true; + } page.removeAttribute('password'); page.removeAttribute('cert'); page.removeAttribute('certPkcs'); |