diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-02-08 05:20:58 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-02-08 05:20:58 +0000 |
commit | e402b8a2a6cfaa132510711fee010209d41ae2cb (patch) | |
tree | 7f4c16467bc7c72521dbcc0985bb1703eebe047e | |
parent | 856e6d8799c5630aaf8bd0accee3fa15a2db0e78 (diff) | |
parent | 2e90322bab7de1deaf3c82e207bf4404b92743d7 (diff) | |
download | Settings-android14-security-release.tar.gz |
Merge cherrypicks of ['googleplex-android-review.googlesource.com/26069282'] into security-aosp-udc-release.android-security-14.0.0_r7android14-security-release
Change-Id: I7e3d02bc2bdbdff0009b35d3a0a4cc0da63393e8
-rw-r--r-- | src/com/android/settings/wifi/WifiDialogActivity.java | 13 | ||||
-rw-r--r-- | tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java | 15 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java index e3e77e86000..dda5929a987 100644 --- a/src/com/android/settings/wifi/WifiDialogActivity.java +++ b/src/com/android/settings/wifi/WifiDialogActivity.java @@ -17,6 +17,7 @@ package com.android.settings.wifi; import static android.Manifest.permission.ACCESS_FINE_LOCATION; +import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG; import static android.os.UserManager.DISALLOW_CONFIG_WIFI; import android.app.KeyguardManager; @@ -122,7 +123,7 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog } super.onCreate(savedInstanceState); - if (!isConfigWifiAllowed()) { + if (!isConfigWifiAllowed() || !isAddWifiConfigAllowed()) { finish(); return; } @@ -393,6 +394,16 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog return isConfigWifiAllowed; } + @VisibleForTesting + boolean isAddWifiConfigAllowed() { + UserManager userManager = getSystemService(UserManager.class); + if (userManager != null && userManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)) { + Log.e(TAG, "The user is not allowed to add Wi-Fi configuration."); + return false; + } + return true; + } + private boolean hasWifiManager() { if (mWifiManager != null) return true; mWifiManager = getSystemService(WifiManager.class); diff --git a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java index 8b9faf2ff09..ad3cfd4a2b8 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java @@ -18,6 +18,7 @@ package com.android.settings.wifi; import static android.Manifest.permission.ACCESS_COARSE_LOCATION; import static android.Manifest.permission.ACCESS_FINE_LOCATION; +import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG; import static android.os.UserManager.DISALLOW_CONFIG_WIFI; import static com.android.settings.wifi.WifiDialogActivity.REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER; @@ -241,6 +242,20 @@ public class WifiDialogActivityTest { } @Test + public void isAddWifiConfigAllowed_hasNoUserRestriction_returnTrue() { + when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(false); + + assertThat(mActivity.isAddWifiConfigAllowed()).isTrue(); + } + + @Test + public void isAddWifiConfigAllowed_hasUserRestriction_returnFalse() { + when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(true); + + assertThat(mActivity.isAddWifiConfigAllowed()).isFalse(); + } + + @Test public void hasPermissionForResult_noCallingPackage_returnFalse() { when(mActivity.getCallingPackage()).thenReturn(null); |