Merge pull request #25910 from nextcloud/enh/allow_login_block

Allow admins to hide the login form
This commit is contained in:
Roeland Jago Douma 2021-03-08 16:27:47 +01:00 committed by GitHub
commit a63b709bed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 28 additions and 3 deletions

View file

@ -305,6 +305,15 @@ $CONFIG = [
*/
'auth.webauthn.enabled' => true,
/**
* By default the login form is always available. There are cases (SSO) where an
* admin wants to avoid users entering their credentials to the system if the SSO
* app is unavailable.
*
* This will show an error. But the the direct login still works with adding ?direct=1
*/
'hide_login_form' => false,
/**
* The directory where the skeleton files are located. These files will be
* copied to the data directory of new users. Leave empty to not copy any

View file

@ -191,6 +191,8 @@ class LoginController extends Controller {
$this->initialStateService->provideInitialState('core', 'webauthn-available', $this->webAuthnManager->isWebAuthnAvailable());
$this->initialStateService->provideInitialState('core', 'hideLoginForm', $this->config->getSystemValueBool('hide_login_form', false));
// OpenGraph Support: http://ogp.me/
Util::addHeader('meta', ['property' => 'og:title', 'content' => Util::sanitizeHTML($this->defaults->getName())]);
Util::addHeader('meta', ['property' => 'og:description', 'content' => Util::sanitizeHTML($this->defaults->getSlogan())]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -67,5 +67,6 @@ new View({
hasPasswordless: fromStateOr('webauthn-available', false),
isHttps: window.location.protocol === 'https:',
hasPublicKeyCredential: typeof (window.PublicKeyCredential) !== 'undefined',
hideLoginForm: fromStateOr('hideLoginForm', false),
},
}).$mount('#login')

View file

@ -20,7 +20,7 @@
-->
<template>
<div>
<div v-if="!hideLoginForm || directLogin">
<transition name="fade" mode="out-in">
<div v-if="!passwordlessLogin && !resetPassword && resetPasswordTarget === ''"
key="login">
@ -84,6 +84,15 @@
</div>
</transition>
</div>
<div v-else>
<transition name="fade" mode="out-in">
<div class="warning">
{{ t('core', 'Login form is disabled.') }}<br>
<small>{{ t('core', 'Please contact your administrator.') }}
</small>
</div>
</transition>
</div>
</template>
<script>
@ -153,6 +162,10 @@ export default {
type: Boolean,
default: false,
},
hideLoginForm: {
type: Boolean,
default: false
}
},
data() {
return {