35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'manifests/user.pp', line 35
define quadlets::user (
Quadlets::Quadlet_user $user,
) {
include quadlets
$_username = $user['name']
$_file_group = pick($user['group'], $user['name'])
$_user_homedir = pick($user['homedir'], "/home/${user['name']}")
$_create_dir = pick($user['create_dir'], true)
$_manage_user = pick($user['manage_user'], true)
$_manage_linger = pick($user['manage_linger'], true)
if $_create_dir {
$components = split($quadlets::quadlet_user_dir, '/')
$dirs = $components.reduce([]) |$accum, $part| {
$accum + [$accum ? {
[] => "${_user_homedir}/${part}",
default => "${accum[-1]}/${part}"
}
]
}
file { $dirs:
ensure => directory,
owner => $_username,
group => $_file_group,
}
}
if $_manage_user {
user { $_username:
ensure => present,
home => $_user_homedir,
managehome => true,
}
}
if $_manage_linger {
loginctl_user { $_username:
linger => enabled,
}
}
}
|