[asl-commit] ActiveSambaLdap r27:
null at cozmixng.org
null at cozmixng.org
Fri Aug 3 22:32:21 EDT 2007
retro 2007-08-04 11:32:18 +0900 (Sat, 04 Aug 2007)
New Revision: 27
Modified files:
trunk/bin/asl-useradd
trunk/bin/asl-userdel
trunk/bin/asl-usermod
trunk/test/test_asl_userdel.rb
Log:
Modified: trunk/bin/asl-userdel (+23 -6)
===================================================================
--- trunk/bin/asl-userdel 2006-11-14 13:17:26 +09:00 (rev 26)
+++ trunk/bin/asl-userdel 2007-08-04 11:32:18 +09:00 (rev 27)
@@ -6,9 +6,15 @@
argv, opts, options = ActiveSambaLdap::Command.parse_options do |opts, options|
options.remove_home_directory = false
options.interactive = false
+ options.computer_account = false
opts.banner += " USER_NAME"
+ opts.on("-c", "--[no-]computer-account",
+ "is a Windows Workstation",
+ "(otherwise, Windows user)",
+ "(#{options.computer_account})") {|options.computer_account|}
+
opts.on("-r", "--[no-]remove-home-directory",
"remove home directory (#{options.remove_home_directory})") do |bool|
options.remove_home_directory = bool
@@ -39,19 +45,30 @@
ldap_mapping
end
+class Computer < ActiveSambaLdap::Computer
+ ldap_mapping
+end
+
class Group < ActiveSambaLdap::Group
ldap_mapping
end
-unless User.exists?(name)
- puts "user '#{name}' doesn't exist."
+member_class = options.computer_account ? Computer : User
+member_type = member_class.name.downcase
+
+if options.computer_account
+ name = name.chomp("$") + "$"
+end
+
+unless member_class.exists?(name)
+ puts "#{member_type} '#{name}' doesn't exist."
exit 1
end
-user = User.find(name)
+member = member_class.find(name)
-user.destroy(:removed_from_group => true,
- :remove_home_directory => options.remove_home_directory,
- :remove_home_directory_interactive => options.interactive)
+member.destroy(:removed_from_group => true,
+ :remove_home_directory => options.remove_home_directory,
+ :remove_home_directory_interactive => options.interactive)
ActiveSambaLdap::Base.restart_nscd
Modified: trunk/bin/asl-useradd (+1 -1)
===================================================================
--- trunk/bin/asl-useradd 2006-11-14 13:17:26 +09:00 (rev 26)
+++ trunk/bin/asl-useradd 2007-08-04 11:32:18 +09:00 (rev 27)
@@ -384,7 +384,7 @@
[File.join(skel, "."), File.join(skel, "..")],
dest)
FileUtils.chown_R(member.uid_number, member.gid_number, dest)
- rescue SystemCallerror
+ rescue SystemCallError
puts $!
exit 1
end
Modified: trunk/bin/asl-usermod (+1 -1)
===================================================================
--- trunk/bin/asl-usermod 2006-11-14 13:17:26 +09:00 (rev 26)
+++ trunk/bin/asl-usermod 2007-08-04 11:32:18 +09:00 (rev 27)
@@ -59,7 +59,7 @@
"supplementary groups (comma separated)") do |groups|
options.supplementary_groups = groups
end
- opts.on("--no-merge-groups",
+ opts.on("--[no-]merge-groups",
"replace supplementary groups " +
"(#{!options.merge_groups})") {|options.merge_groups|}
opts.on("-s", "--shell=SHELL", "shell") {|options.shell|}
Modified: trunk/test/test_asl_userdel.rb (+25 -0)
===================================================================
--- trunk/test/test_asl_userdel.rb 2006-11-14 13:17:26 +09:00 (rev 26)
+++ trunk/test/test_asl_userdel.rb 2007-08-04 11:32:18 +09:00 (rev 27)
@@ -22,10 +22,35 @@
make_dummy_user do |user, password|
assert(File.exist?(user.home_directory))
assert_equal([true, ""], run_command(user.uid))
+ assert(!@user_class.exists?(user.uid))
assert(File.exist?(user.home_directory))
end
end
+ def test_exist_computer
+ make_dummy_computer do |computer, password|
+ assert(@computer_class.exists?(computer.uid))
+ assert_equal([true, ""], run_command(computer.uid, '--computer-account'))
+ assert(!@computer_class.exists?(computer.uid))
+ end
+ end
+
+ def test_user_as_computer
+ make_dummy_user do |user, password|
+ assert_equal([false, "computer '#{user.uid}$' doesn't exist.\n"],
+ run_command(user.uid, "--computer-account"))
+ assert(@user_class.exists?(user.uid))
+ end
+ end
+
+ def test_computer_as_user
+ make_dummy_computer do |computer, password|
+ assert_equal([false, "user '#{computer.uid}' doesn't exist.\n"],
+ run_command(computer.uid))
+ assert(@computer_class.exists?(computer.uid))
+ end
+ end
+
def test_belongs_to_group
make_dummy_user do |user, password|
assert(File.exist?(user.home_directory))
More information about the asl-commit
mailing list