# define a user object define glauth::obj::user ( String $user_name, String $mail, Integer $uidnumber, Integer $primarygroup, String $passsha256, Stdlib::Absolutepath $config_path, String $givenname = '', String $sn = '', String $loginshell = '', String $homedir = '', Optional[Array[String]] $sshkeys = [], Optional[Array[String]] $passappsha256 = [], Optional[Array[Integer]] $othergroups = [], ) { $formatted_othergroups = $othergroups.empty ? { true => '[]', false => "[${othergroups.join(', ')}]", } concat::fragment { "glauth_user_${user_name}": target => $config_path, content => epp('glauth/obj/user.epp', { 'name' => $user_name, 'givenname' => $givenname, 'sn' => $sn, 'mail' => $mail, 'uidnumber' => $uidnumber, 'primarygroup' => $primarygroup, 'loginshell' => $loginshell, 'homedir' => $homedir, 'passsha256' => $passsha256, 'sshkeys' => $sshkeys, 'passappsha256' => $passappsha256, 'othergroups' => $formatted_othergroups, }), order => '70', } }