summaryrefslogtreecommitdiff
path: root/internal/validate/formvalidation.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/validate/formvalidation.go')
-rw-r--r--internal/validate/formvalidation.go19
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)
+}