Skip to content

Commit 5ef5743

Browse files
committed
Hide stay logged in checkbox when flow authentication is used
Signed-off-by: Julius Härtl <jus@bitgrid.net>
1 parent b6fcf59 commit 5ef5743

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

core/Controller/LoginController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ public function showLoginForm($user, $redirect_url, $remember_login) {
179179

180180
$parameters['alt_login'] = OC_App::getAlternativeLogIns();
181181
$parameters['rememberLoginState'] = !empty($remember_login) ? $remember_login : 0;
182+
$parameters['hideRemeberLoginState'] = !empty($redirect_url) && $this->session->exists('client.flow.state.token');
182183

183184
if (!is_null($user) && $user !== '') {
184185
$parameters['loginName'] = $user;

core/templates/login.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
<?php } ?>
7171

7272
<div class="login-additional">
73+
<?php if (!$_['hideRemeberLoginState']) { ?>
7374
<div class="remember-login-container">
7475
<?php if ($_['rememberLoginState'] === 0) { ?>
7576
<input type="checkbox" name="remember_login" value="1" id="remember_login" class="checkbox checkbox--white">
@@ -78,6 +79,7 @@
7879
<?php } ?>
7980
<label for="remember_login"><?php p($l->t('Stay logged in')); ?></label>
8081
</div>
82+
<?php } ?>
8183
<?php if (!empty($_['canResetPassword'])) { ?>
8284
<div class="lost-password-container">
8385
<a id="lost-password" href="<?php p($_['resetPasswordLink']); ?>">

tests/Core/Controller/LoginControllerTest.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,12 +182,43 @@ public function testShowLoginFormWithErrorsInSession() {
182182
'alt_login' => [],
183183
'rememberLoginState' => 0,
184184
'resetPasswordLink' => null,
185+
'hideRemeberLoginState' => false,
185186
],
186187
'guest'
187188
);
188189
$this->assertEquals($expectedResponse, $this->loginController->showLoginForm('', '', ''));
189190
}
190191

192+
public function testShowLoginFormForFlowAuth() {
193+
$this->userSession
194+
->expects($this->once())
195+
->method('isLoggedIn')
196+
->willReturn(false);
197+
$this->session
198+
->expects($this->once())
199+
->method('exists')
200+
->with('client.flow.state.token')
201+
->willReturn(true);
202+
203+
$expectedResponse = new TemplateResponse(
204+
'core',
205+
'login',
206+
[
207+
'messages' => [],
208+
'redirect_url' => 'login/flow',
209+
'loginName' => '',
210+
'user_autofocus' => true,
211+
'canResetPassword' => true,
212+
'alt_login' => [],
213+
'rememberLoginState' => 0,
214+
'resetPasswordLink' => null,
215+
'hideRemeberLoginState' => true,
216+
],
217+
'guest'
218+
);
219+
$this->assertEquals($expectedResponse, $this->loginController->showLoginForm('', 'login/flow', ''));
220+
}
221+
191222
/**
192223
* @return array
193224
*/
@@ -240,6 +271,7 @@ public function testShowLoginFormWithPasswordResetOption($canChangePassword,
240271
'alt_login' => [],
241272
'rememberLoginState' => 0,
242273
'resetPasswordLink' => false,
274+
'hideRemeberLoginState' => false,
243275
],
244276
'guest'
245277
);
@@ -278,6 +310,7 @@ public function testShowLoginFormForUserNamedNull() {
278310
'alt_login' => [],
279311
'rememberLoginState' => 0,
280312
'resetPasswordLink' => false,
313+
'hideRemeberLoginState' => false,
281314
],
282315
'guest'
283316
);

0 commit comments

Comments
 (0)