diff options
Diffstat (limited to 'sd_login/util_valid.go')
-rw-r--r-- | sd_login/util_valid.go | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/sd_login/util_valid.go b/sd_login/util_valid.go index 46493b3..1837a8f 100644 --- a/sd_login/util_valid.go +++ b/sd_login/util_valid.go @@ -15,21 +15,23 @@ package sd_login import ( + "strconv" "strings" ) -func valid_session_name(id string) bool { - if id == "" { - return false - } - - return strings.TrimLeft(id, letters+digits) == "" -} - func valid_slice_name(s string) bool { return strings.HasSuffix(s, ".slice") && valid_unit_name(s) == unit_name_plain } +func valid_user_tree(unit string) bool { + sessStr, sessOk := trimPrefixSuffix(unit, "session-", ".scope") + + ownerStr, ownerOk := trimPrefixSuffix(unit, "user@", ".service") + _, ownerErr := strconv.Atoi(ownerStr) + + return (sessOk && (SessionName(sessStr).isValid())) || (ownerOk && ownerErr == nil) +} + func valid_filename(s string) bool { switch s { case "", ".", "..": |