Ver Fonte

WebClient: disable indicator if we redirect from the login page

Signed-off-by: Nicola Murino <[email protected]>
Nicola Murino há 1 ano atrás
pai
commit
ae309d64c4
3 ficheiros alterados com 13 adições e 3 exclusões
  1. 2 0
      internal/httpd/server.go
  2. 1 0
      internal/httpd/web.go
  3. 10 3
      templates/common/baselogin.html

+ 2 - 0
internal/httpd/server.go

@@ -173,6 +173,7 @@ func (s *httpdServer) renderClientLoginPage(w http.ResponseWriter, r *http.Reque
 		CSRFToken:      createCSRFToken(ip),
 		Branding:       s.binding.Branding.WebClient,
 		FormDisabled:   s.binding.isWebClientLoginFormDisabled(),
+		CheckRedirect:  true,
 	}
 	if next := r.URL.Query().Get("next"); strings.HasPrefix(next, webClientFilesPath) {
 		data.CurrentURL += "?next=" + url.QueryEscape(next)
@@ -599,6 +600,7 @@ func (s *httpdServer) renderAdminLoginPage(w http.ResponseWriter, r *http.Reques
 		CSRFToken:      createCSRFToken(ip),
 		Branding:       s.binding.Branding.WebAdmin,
 		FormDisabled:   s.binding.isWebAdminLoginFormDisabled(),
+		CheckRedirect:  false,
 	}
 	if s.binding.showClientLoginURL() {
 		data.AltLoginURL = webClientLoginPath

+ 1 - 0
internal/httpd/web.go

@@ -69,6 +69,7 @@ type loginPage struct {
 	Title          string
 	Branding       UIBranding
 	FormDisabled   bool
+	CheckRedirect  bool
 }
 
 type twoFactorPage struct {

+ 10 - 3
templates/common/baselogin.html

@@ -59,9 +59,16 @@ explicit grant from the SFTPGo Team ([email protected]).
 		<script type="text/javascript" {{- if .CSPNonce}} nonce="{{.CSPNonce}}"{{- end}}>
 			KTUtil.onDOMContentLoaded(function () {
 				$('#sign_in_form').submit(function (event) {
-					let submitButton = document.querySelector('#sign_in_submit');
-					submitButton.setAttribute('data-kt-indicator', 'on');
-					submitButton.disabled = true;
+					let next = null;
+					//{{- if .CheckRedirect}}
+					const urlParams = new URLSearchParams(window.location.search);
+					next = urlParams.get('next');
+					//{{- end}}
+					if (!next){
+						let submitButton = document.querySelector('#sign_in_submit');
+						submitButton.setAttribute('data-kt-indicator', 'on');
+						submitButton.disabled = true;
+					}
 				});
 			});
 		</script>