# 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 => template('glauth/obj/user.erb'), order => '70', } }