@@ -66,7 +66,6 @@ module Puppet
66
66
newproperty ( :ensure , :parent => Puppet ::Property ::Ensure ) do
67
67
newvalue ( :present , :event => :user_created ) do
68
68
provider . create
69
- @resource . generate
70
69
end
71
70
72
71
newvalue ( :absent , :event => :user_removed ) do
@@ -695,7 +694,6 @@ def delimiter
695
694
696
695
def generate
697
696
if !self [ :purge_ssh_keys ] . empty?
698
- return [ ] if self [ :ensure ] == :present && !provider . exists?
699
697
if Puppet ::Type . type ( :ssh_authorized_key ) . nil?
700
698
warning _ ( "Ssh_authorized_key type is not available. Cannot purge SSH keys." )
701
699
else
@@ -744,6 +742,25 @@ def generate
744
742
end
745
743
raise ArgumentError , _ ( "purge_ssh_keys must be true, false, or an array of file names, not %{value}" ) % { value : value . inspect }
746
744
end
745
+
746
+ munge do |value |
747
+ # Resolve string, boolean and symbol forms of true and false to a
748
+ # single representation.
749
+ test_sym = value . to_s . intern
750
+ value = test_sym if [ :true , :false ] . include? test_sym
751
+
752
+ return [ ] if value == :false
753
+ home = resource [ :home ] || Dir . home ( resource [ :name ] )
754
+
755
+ return [ "#{ home } /.ssh/authorized_keys" ] if value == :true
756
+ # value is an array - munge each value
757
+ [ value ] . flatten . map do |entry |
758
+ # make sure frozen value is duplicated by using a gsub, second mutating gsub! is then ok
759
+ entry = entry . gsub ( /^~\/ / , "#{ home } /" )
760
+ entry . gsub! ( /^%h\/ / , "#{ home } /" )
761
+ entry
762
+ end
763
+ end
747
764
end
748
765
749
766
newproperty ( :loginclass , :required_features => :manages_loginclass ) do
@@ -765,7 +782,7 @@ def generate
765
782
# @see generate
766
783
# @api private
767
784
def find_unmanaged_keys
768
- munged_unmanaged_keys .
785
+ self [ :purge_ssh_keys ] .
769
786
select { |f | File . readable? ( f ) } .
770
787
map { |f | unknown_keys_in_file ( f ) } .
771
788
flatten . each do |res |
@@ -777,41 +794,6 @@ def find_unmanaged_keys
777
794
end
778
795
end
779
796
780
- def munged_unmanaged_keys
781
- value = self [ :purge_ssh_keys ]
782
-
783
- # Resolve string, boolean and symbol forms of true and false to a
784
- # single representation.
785
- test_sym = value . to_s . intern
786
- value = test_sym if [ :true , :false ] . include? test_sym
787
-
788
- return [ ] if value == :false
789
-
790
- home = self [ :home ]
791
- begin
792
- home ||= provider . home
793
- rescue
794
- Puppet . debug ( "User '#{ self [ :name ] } ' does not exist" )
795
- end
796
-
797
- if home . to_s . empty? || !Dir . exist? ( home . to_s )
798
- if value == :true || [ value ] . flatten . any? { |v | v . start_with? ( '~/' , '%h/' ) }
799
- Puppet . debug ( "User '#{ self [ :name ] } ' has no home directory set to purge ssh keys from." )
800
- return [ ]
801
- end
802
- end
803
-
804
- return [ "#{ home } /.ssh/authorized_keys" ] if value == :true
805
-
806
- # value is an array - munge each value
807
- [ value ] . flatten . map do |entry |
808
- # make sure frozen value is duplicated by using a gsub, second mutating gsub! is then ok
809
- entry = entry . gsub ( /^~\/ / , "#{ home } /" )
810
- entry . gsub! ( /^%h\/ / , "#{ home } /" )
811
- entry
812
- end
813
- end
814
-
815
797
# Parse an ssh authorized keys file superficially, extract the comments
816
798
# on the keys. These are considered names of possible ssh_authorized_keys
817
799
# resources. Keys that are managed by the present catalog are ignored.
0 commit comments