13 lines
450 B
Go
13 lines
450 B
Go
package platform
|
|
|
|
import "regexp"
|
|
|
|
var slugPattern = regexp.MustCompile(`^[a-z0-9]+(-[a-z0-9]+)*$`)
|
|
|
|
var uuidSlugPattern = regexp.MustCompile(`^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`)
|
|
|
|
// Slugs remain stable across renames unless explicitly changed by an authorized edit.
|
|
func validSlug(slug *string) bool {
|
|
return slug == nil || (len(*slug) <= 100 && slugPattern.MatchString(*slug) && !uuidSlugPattern.MatchString(*slug))
|
|
}
|