--- puppet-3.8.6/lib/puppet/provider/user/user_role_add.rb.orig 2016-04-19 14:32:54.606087591 -0700 +++ puppet-3.8.6/lib/puppet/provider/user/user_role_add.rb 2016-04-19 14:34:04.451831050 -0700 @@ -1,3 +1,7 @@ +####################################################################### +# Oracle has modified the originally distributed contents of this file. +####################################################################### + require 'puppet/util' require 'puppet/util/user_attr' require 'date' @@ -12,6 +16,7 @@ options :home, :flag => "-d", :method => :dir options :comment, :method => :gecos options :groups, :flag => "-G" + options :shell, :flag => "-s" options :roles, :flag => "-R" options :auths, :flag => "-A" options :profiles, :flag => "-P" @@ -26,7 +31,22 @@ value !~ /\s/ end + def shell=(value) + check_valid_shell + set("shell", value) + end + has_features :manages_homedir, :allows_duplicates, :manages_solaris_rbac, :manages_passwords, :manages_password_age, :manages_shell + + + def check_valid_shell + unless File.exists?(@resource.should(:shell)) + raise(Puppet::Error, "Shell #{@resource.should(:shell)} must exist") + end + unless File.executable?(@resource.should(:shell).to_s) + raise(Puppet::Error, "Shell #{@resource.should(:shell)} must be executable") + end + end #must override this to hand the keyvalue pairs def add_properties