diff options
Diffstat (limited to 'internal/validate/formvalidation.go')
-rw-r--r-- | internal/validate/formvalidation.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/internal/validate/formvalidation.go b/internal/validate/formvalidation.go index 32aa1fd1e..e7839d1a3 100644 --- a/internal/validate/formvalidation.go +++ b/internal/validate/formvalidation.go @@ -43,6 +43,8 @@ const ( maximumUsernameLength = 64 maximumCustomCSSLength = 5000 maximumEmojiCategoryLength = 64 + maximumProfileFieldLength = 255 + maximumProfileFields = 4 ) // NewPassword returns an error if the given password is not sufficiently strong, or nil if it's ok. @@ -231,3 +233,20 @@ func SiteTerms(t string) error { func ULID(i string) bool { return regexes.ULID.MatchString(i) } + +func ProfileFieldsCount(fields []apimodel.UpdateField) error { + if length := len(fields); length > maximumProfileFields { + return fmt.Errorf("cannot have more than %d profile fields", maximumProfileFields) + } + + return nil +} + +func ProfileField(f *string) string { + s := []rune(*f) + if len(s) > maximumProfileFieldLength { + return string(s[:maximumProfileFieldLength]) // trim profile field to maximum allowed length + } + + return string(*f) +} |