632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
|
# File 'lib/chef/resource/execute.rb', line 632
def qualify_user(specified_user, password = nil, specified_domain = nil)
domain = specified_domain
user = specified_user
if specified_user.nil? && ! specified_domain.nil?
raise ArgumentError, "The domain `#{specified_domain}` was specified, but no user name was given"
end
if specified_user.is_a?(String) && ((specified_user.include? "\\") || (specified_user.include? "@")) && specified_domain
raise ArgumentError, "The domain is provided twice. Username: `#{specified_user}`, Domain: `#{specified_domain}`. Please specify domain only once."
end
if specified_user.is_a?(String) && specified_domain.nil?
domain_and_user = user.split("\\")
if domain_and_user.length == 2
domain = domain_and_user[0]
user = domain_and_user[1]
elsif domain_and_user.length == 1
domain_and_user = user.split("@")
if domain_and_user.length == 2
domain = domain_and_user[1]
user = domain_and_user[0]
elsif domain_and_user.length != 1
raise ArgumentError, "The specified user name `#{user}` is not a syntactically valid user name"
end
end
end
if ( password || domain ) && user.nil?
raise ArgumentError, "A value for `password` or `domain` was specified without specification of a value for `user`"
end
{ domain: domain, user: user }
end
|