summaryrefslogtreecommitdiff
path: root/internal/handlers/handler_configuration_password_policy.go
blob: f5014465d74f62663b5e10fa58e146c3450ddd55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package handlers

import (
	"github.com/authelia/authelia/v4/internal/middlewares"
)

// PasswordPolicyConfigurationGET get the password policy configuration.
func PasswordPolicyConfigurationGET(ctx *middlewares.AutheliaCtx) {
	policyResponse := PasswordPolicyBody{
		Mode: "disabled",
	}

	if ctx.Configuration.PasswordPolicy.Standard.Enabled {
		policyResponse.Mode = "standard"
		policyResponse.MinLength = ctx.Configuration.PasswordPolicy.Standard.MinLength
		policyResponse.MaxLength = ctx.Configuration.PasswordPolicy.Standard.MaxLength
		policyResponse.RequireLowercase = ctx.Configuration.PasswordPolicy.Standard.RequireLowercase
		policyResponse.RequireUppercase = ctx.Configuration.PasswordPolicy.Standard.RequireUppercase
		policyResponse.RequireNumber = ctx.Configuration.PasswordPolicy.Standard.RequireNumber
		policyResponse.RequireSpecial = ctx.Configuration.PasswordPolicy.Standard.RequireSpecial
	} else if ctx.Configuration.PasswordPolicy.ZXCVBN.Enabled {
		policyResponse.Mode = "zxcvbn"
	}

	var err error

	if err = ctx.SetJSONBody(policyResponse); err != nil {
		ctx.Logger.Errorf("Unable to send password Policy: %s", err)
	}
}