on xenial help sign in
Stop the emergency dialer from accidentally exposing the mtp service. Fixes: #1525981

Approved by: Josh Arenson

commit15dbf81a8173f9d1720bd5c5556de2d68d94623a authorMichael Terry <michael.terry@canonical.com> dateMon 11 Jan 2016, 17:37 (11 years ago) parent7406ee28553a44
2 files changed+26−4
qml/Greeter/Greeter.qml+1−1 tests/qmltests/Greeter/tst_Greeter.qml+25−3
qml/Greeter/Greeter.qml+1−1
@@ -33,7 +33,7 @@ Showable {
3333 // How far to offset the top greeter layer during a launcher left-drag
3434 property real launcherOffset
3535
36− readonly property bool active: shown || hasLockedApp
36+ readonly property bool active: required || hasLockedApp
3737 readonly property bool fullyShown: loader.item ? loader.item.fullyShown : false
3838
3939 // True when the greeter is waiting for PAM or other setup process
tests/qmltests/Greeter/tst_Greeter.qml+25−3
@@ -71,9 +71,9 @@ Item {
7171 }
7272
7373 SignalSpy {
74− id: emergencyCallSpy
74+ id: activeChangedSpy
7575 target: loader.item
76− signalName: "emergencyCall"
76+ signalName: "activeChanged"
7777 }
7878
7979 GSettings {
@@ -142,7 +142,7 @@ Item {
142142 resetLoader();
143143 teaseSpy.clear();
144144 sessionStartedSpy.clear();
145− emergencyCallSpy.clear();
145+ activeChangedSpy.clear();
146146 viewShowMessageSpy.clear();
147147 viewShowPromptSpy.clear();
148148 viewShowLastChanceSpy.clear();
@@ -485,6 +485,28 @@ Item {
485485 tryCompare(view, "delayMinutes", 0);
486486 }
487487
488+ function test_activeIsConstantDuringLockedApp() {
489+ // Regression test for bug 1525981: if we flicker active state even
490+ // briefly, the mpt-server will allow access to the device's drive.
491+
492+ selectUser("has-password");
493+ verify(greeter.active);
494+
495+ // Test opening a locked app
496+ greeter.lockedApp = "test-app";
497+ greeter.notifyAppFocused("test-app");
498+ verify(greeter.hasLockedApp);
499+ verify(!greeter.shown);
500+
501+ // Test going back to greeter from that locked app
502+ LightDM.Greeter.showGreeter();
503+ verify(!greeter.hasLockedApp);
504+ verify(greeter.shown);
505+
506+ // Active state should never have changed
507+ compare(activeChangedSpy.count, 0);
508+ }
509+
488510 function test_dbusRequestAuthenticationUser() {
489511 selectUser("no-password");
490512 LightDM.Greeter.requestAuthenticationUser("has-password");