Sha256: 743e96cec86fd7eec18c7c4927b2a9686158d6b5e0f64381bc938cdbb4b75983
Contents?: true
Size: 1.92 KB
Versions: 5
Compression:
Stored size: 1.92 KB
Contents
#!/usr/bin/env ruby require 'etc' require 'active_samba_ldap' require 'active_samba_ldap/command' include ActiveSambaLdap::GetTextSupport argv, opts, options = ActiveSambaLdap::Command.parse_options do |opts, options| options.update_samba_password = true options.update_unix_password = true opts.banner += " [USER_NAME]" opts.on("-s", "--[no-]samba-password", _("update samba password"), "(#{options.update_samba_password})") do |bool| options.update_samba_password = bool end opts.on("-u", "--[no-]unix-password", _("update UNIX password"), "(#{options.update_unix_password})") do |bool| options.update_unix_password = bool end end name = nil case argv.size when 0 name = Etc.getpwuid(Process.uid).name when 1 name = argv.first else $stderr.puts opts exit 1 end if !options.update_samba_password and !options.update_unix_password $stderr.puts(_("do nothing.")) exit end ActiveSambaLdap::Base.setup_connection("update") class User < ActiveSambaLdap::User ldap_mapping end unless User.exists?(name) $stderr.puts(_("user doesn't exist: %s") % name) exit 1 end user = User.find(name) unless Process.uid.zero? prompt = _("Enter your current password: ") old_password = ActiveSambaLdap::Command.read_password(prompt) begin user.bind(old_password) rescue ActiveLdap::AuthenticationError $stderr.puts(_("password doesn't match.")) exit 1 end end password = ActiveSambaLdap::Command.read_password(_("New password: ")) password2 = ActiveSambaLdap::Command.read_password(_("Retype new password: ")) unless password == password2 $stderr.puts(_("New passwords don't match.")) exit 1 end changed = false if options.update_unix_password user.change_password(password) changed = true end if options.update_samba_password user.change_samba_password(password) changed = true end user.save! if changed ActiveSambaLdap::Base.clear_active_connections!
Version data entries
5 entries across 5 versions & 2 rubygems
Version | Path |
---|---|
activesambaldap-0.1.0 | bin/asl-passwd |
activesambaldap-0.0.9 | bin/asl-passwd |
activesambaldap-0.0.8 | bin/asl-passwd |
ActiveSambaLdap-0.0.7 | bin/asl-passwd |
activesambaldap-0.0.7 | bin/asl-passwd |