photoprism/pkg/rnd/ref_id.go
Michael Mayer f5a8c5a45d Auth: Session and ACL enhancements #98 #1746
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-28 09:01:17 +02:00

26 lines
545 B
Go

package rnd
// RefID generates a new reference ID with optional 2-character prefix.
func RefID(id string) string {
if n := len(id); n == 0 {
return "ref" + Base36(9)
} else if n > 4 {
return id[:4] + Base36(8)
} else {
return id + Base36(12-n)
}
}
// IsRefID checks if the string is a valid reference ID.
func IsRefID(s string) bool {
if n := len(s); n < 10 || n > 14 {
return false
}
return IsAlnum(s)
}
// InvalidRefID checks if the reference ID is empty or invalid.
func InvalidRefID(s string) bool {
return !IsRefID(s)
}