Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 909b62ff authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Restrict guest user to configure WiFi access points" into tm-qpr-dev

parents 7ab5a444 a09c33f4
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.wifi;

import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static android.os.UserManager.DISALLOW_CONFIG_WIFI;

import android.content.DialogInterface;
import android.content.Intent;
@@ -31,6 +32,7 @@ import android.os.Looper;
import android.os.Process;
import android.os.SimpleClock;
import android.os.SystemClock;
import android.os.UserManager;
import android.text.TextUtils;
import android.util.EventLog;
import android.util.Log;
@@ -115,6 +117,10 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog
        }

        super.onCreate(savedInstanceState);
        if (!isConfigWifiAllowed()) {
            finish();
            return;
        }

        mIsWifiTrackerLib = !TextUtils.isEmpty(mIntent.getStringExtra(KEY_CHOSEN_WIFIENTRY_KEY));

@@ -361,6 +367,19 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog
        }
    }

    @VisibleForTesting
    boolean isConfigWifiAllowed() {
        UserManager userManager = getSystemService(UserManager.class);
        if (userManager == null) return true;
        final boolean isConfigWifiAllowed = !userManager.hasUserRestriction(DISALLOW_CONFIG_WIFI);
        if (!isConfigWifiAllowed) {
            Log.e(TAG, "The user is not allowed to configure Wi-Fi.");
            EventLog.writeEvent(0x534e4554, "226133034", getApplicationContext().getUserId(),
                    "The user is not allowed to configure Wi-Fi.");
        }
        return isConfigWifiAllowed;
    }

    private boolean hasWifiManager() {
        if (mWifiManager != null) return true;
        mWifiManager = getSystemService(WifiManager.class);
+20 −0
Original line number Diff line number Diff line
@@ -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_CONFIG_WIFI;

import static com.android.settings.wifi.WifiDialogActivity.REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER;
import static com.android.settings.wifi.WifiDialogActivity.RESULT_CONNECTED;
@@ -36,6 +37,7 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.os.UserManager;

import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.wifi.AccessPoint;
@@ -44,6 +46,7 @@ import com.android.wifitrackerlib.WifiEntry;
import com.google.android.setupcompat.util.WizardManagerHelper;

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -57,6 +60,8 @@ public class WifiDialogActivityTest {
    static final String CALLING_PACKAGE = "calling_package";
    static final int REQUEST_CODE = REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER;

    @Mock
    UserManager mUserManager;
    @Mock
    PackageManager mPackageManager;
    @Mock
@@ -92,6 +97,7 @@ public class WifiDialogActivityTest {
        FakeFeatureFactory.setupForTest();

        mActivity = spy(Robolectric.setupActivity(WifiDialogActivity.class));
        when(mActivity.getSystemService(UserManager.class)).thenReturn(mUserManager);
        when(mActivity.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
    }

@@ -211,6 +217,20 @@ public class WifiDialogActivityTest {
        verify(mActivity).setResult(RESULT_CONNECTED, mResultData);
    }

    @Test
    public void isConfigWifiAllowed_hasNoUserRestriction_returnTrue() {
        when(mUserManager.hasUserRestriction(DISALLOW_CONFIG_WIFI)).thenReturn(false);

        assertThat(mActivity.isConfigWifiAllowed()).isTrue();
    }

    @Test
    public void isConfigWifiAllowed_hasUserRestriction_returnFalse() {
        when(mUserManager.hasUserRestriction(DISALLOW_CONFIG_WIFI)).thenReturn(true);

        assertThat(mActivity.isConfigWifiAllowed()).isFalse();
    }

    @Test
    public void hasPermissionForResult_noCallingPackage_returnFalse() {
        when(mActivity.getCallingPackage()).thenReturn(null);