summaryrefslogtreecommitdiff
path: root/sd_login/util_valid.go
diff options
context:
space:
mode:
Diffstat (limited to 'sd_login/util_valid.go')
-rw-r--r--sd_login/util_valid.go18
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 "", ".", "..":