36 lines
809 B
Go
36 lines
809 B
Go
package m
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
type NKodePolicy struct {
|
|
MaxNkodeLen int `json:"max_nkode_len"`
|
|
MinNkodeLen int `json:"min_nkode_len"`
|
|
DistinctSets int `json:"distinct_sets"`
|
|
DistinctAttributes int `json:"distinct_attributes"`
|
|
LockOut int `json:"lock_out"`
|
|
Expiration int `json:"expiration"` // seconds, -1 no expiration
|
|
}
|
|
|
|
func NewDefaultNKodePolicy() NKodePolicy {
|
|
return NKodePolicy{
|
|
MinNkodeLen: 4,
|
|
MaxNkodeLen: 10,
|
|
DistinctSets: 0,
|
|
DistinctAttributes: 4,
|
|
LockOut: 5,
|
|
Expiration: -1,
|
|
}
|
|
}
|
|
|
|
var InvalidNKodeLen = errors.New("invalid nkode length")
|
|
|
|
func (p *NKodePolicy) ValidLength(nkodeLen int) error {
|
|
|
|
if nkodeLen < p.MinNkodeLen || nkodeLen > p.MaxNkodeLen {
|
|
return InvalidNKodeLen
|
|
}
|
|
return nil
|
|
}
|