summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chromeos/dom_ui/internet_options_handler.cc14
-rw-r--r--chrome/browser/resources/options/chromeos_internet_network_element.js4
-rw-r--r--chrome/browser/resources/options/chromeos_internet_options.js4
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');