mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[feature] Add support for profile fields (#1483)
* Add go-playground/form pkg * [feature] Add support for profile fields * Add field attributes test * Validate profile fields form * Add profile field validation tests * Add Field Attributes definition to swagger --------- Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com>
This commit is contained in:
@ -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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user