[asl-commit] ActiveSambaLdap r49:
null at cozmixng.org
null at cozmixng.org
Fri Aug 3 22:33:21 EDT 2007
retro 2007-08-04 11:33:18 +0900 (Sat, 04 Aug 2007)
New Revision: 49
Modified files:
trunk/bin/asl-useradd
trunk/lib/active_samba_ldap/account.rb
trunk/lib/active_samba_ldap/samba_account.rb
trunk/test/asl-test-utils.rb
Log:
Modified: trunk/test/asl-test-utils.rb (+23 -25)
===================================================================
--- trunk/test/asl-test-utils.rb 2006-11-16 15:54:40 +09:00 (rev 48)
+++ trunk/test/asl-test-utils.rb 2007-08-04 11:33:18 +09:00 (rev 49)
@@ -118,15 +118,15 @@
gid_number = config[:gid_number] || default_user_gid
_wrap_assertion do
assert(!@user_class.exists?(name))
- user = @user_class.new(name)
options = {
+ :uid => name,
:uid_number => uid_number,
:group => @group_class.find_by_gid_number(gid_number),
+ :home_directory => home_directory,
+ :password => password,
}
- user.fill_default_values(options)
- user.home_directory = home_directory
- user.change_password(password)
- user.change_samba_password(password)
+ user = @user_class.create(options)
+ assert_equal([], user.errors.to_a)
user.save!
FileUtils.mkdir(home_directory)
assert(@user_class.exists?(name))
@@ -138,11 +138,9 @@
def ensure_delete_user(uid, home=nil)
yield(uid, home)
ensure
- FileUtils.rm_rf(home) if home
if @user_class.exists?(uid)
- user = @user_class.find(uid)
- user.groups = []
- user.destroy
+ @user_class.find(uid).destroy(:remove_from_group => true,
+ :remove_home_directory => true)
end
end
@@ -158,17 +156,14 @@
gid_number = config[:gid_number] || default_computer_gid
_wrap_assertion do
assert(!@computer_class.exists?(name))
- computer = @computer_class.new(name)
options = {
+ :uid => name,
:uid_number => uid_number,
:group => @group_class.find_by_gid_number(gid_number),
+ :password => password,
}
- computer.fill_default_values(options)
- if password
- computer.change_password(password)
- computer.change_samba_password(password)
- end
- computer.save!
+ computer = @computer_class.create(options)
+ assert_equal([], computer.errors.to_a)
FileUtils.mkdir(home_directory)
assert(@computer_class.exists?(name))
yield(computer, password)
@@ -179,11 +174,9 @@
def ensure_delete_computer(uid, home=nil)
yield(uid.sub(/\$+\z/, '') + "$", home)
ensure
- FileUtils.rm_rf(home) if home
if @computer_class.exists?(uid)
- computer = @computer_class.find(uid)
- computer.groups = []
- computer.destroy
+ @computer_class.find(uid).destroy(:remove_from_group => true,
+ :remove_home_directory => true)
end
end
@@ -195,10 +188,13 @@
group_type = config[:group_type] || "domain"
_wrap_assertion do
assert(!@group_class.exists?(name))
- group = @group_class.new(name)
- group.change_gid_number(gid_number)
- group.change_type(group_type)
- group.save!
+ options = {
+ :cn => name,
+ :gid_number => gid_number,
+ :group_type => group_type,
+ }
+ group = @group_class.create(options)
+ assert_equal([], group.errors.to_a)
assert(@group_class.exists?(name))
yield(group)
end
@@ -208,7 +204,9 @@
def ensure_delete_group(name)
yield(name)
ensure
- @group_class.destroy(name) if @group_class.exists?(name)
+ if @group_class.exists?(name)
+ @group_class.find(name).destroy(:remove_members => false)
+ end
end
def ensure_delete_ou(ou)
Modified: trunk/lib/active_samba_ldap/account.rb (+29 -22)
===================================================================
--- trunk/lib/active_samba_ldap/account.rb 2006-11-16 15:54:40 +09:00 (rev 48)
+++ trunk/lib/active_samba_ldap/account.rb 2007-08-04 11:33:18 +09:00 (rev 49)
@@ -82,33 +82,14 @@
self.home_directory ||= substituted_value(:user_home)
self.login_shell ||= self.class.configuration[:user_login_shell]
+ password = options[:password]
+ change_password(password) if password
self.user_password ||= "{crypt}x"
uid_number = options[:uid_number]
self.change_uid_number(uid_number) if uid_number
- group = options[:group]
- unless group
- gid_number = options[:gid_number]
- group_class = options[:group_class]
- unless gid_number
- if options[:create_group]
- group_name = created_group_name
- if group_class.exists?(group_name)
- group = group_class.find(group_name)
- else
- group = group_class.create(:cn => group_name,
- :pool => options[:pool],
- :pool_class => options[:pool_class])
- end
- else
- gid_number = default_gid_number
- end
- end
- if gid_number
- group = group_class.find_by_gid_number(gid_number)
- end
- end
+ group = options[:group] || retrieve_default_group(options)
self.primary_group = group if group
self
@@ -192,5 +173,31 @@
def created_group_name
uid
end
+
+ def retrieve_default_group(options={})
+ group = nil
+
+ gid_number = options[:gid_number]
+ group_class = options[:group_class]
+ unless gid_number
+ if options[:create_group]
+ group_name = created_group_name
+ if group_class.exists?(group_name)
+ group = group_class.find(group_name)
+ else
+ group = group_class.create(:cn => group_name,
+ :pool => options[:pool],
+ :pool_class => options[:pool_class])
+ end
+ else
+ gid_number = default_gid_number
+ end
+ end
+ if gid_number
+ group = group_class.find_by_gid_number(gid_number)
+ end
+
+ group
+ end
end
end
Modified: trunk/bin/asl-useradd (+0 -2)
===================================================================
--- trunk/bin/asl-useradd 2006-11-16 15:54:40 +09:00 (rev 48)
+++ trunk/bin/asl-useradd 2007-08-04 11:33:18 +09:00 (rev 49)
@@ -237,8 +237,6 @@
end
end
-
-
member = nil
begin
member = member_class.create(create_options)
Modified: trunk/lib/active_samba_ldap/samba_account.rb (+4 -0)
===================================================================
--- trunk/lib/active_samba_ldap/samba_account.rb 2006-11-16 15:54:40 +09:00 (rev 48)
+++ trunk/lib/active_samba_ldap/samba_account.rb 2007-08-04 11:33:18 +09:00 (rev 49)
@@ -82,6 +82,8 @@
self.samba_logoff_time ||= FAR_FUTURE_TIME
self.samba_kickoff_time ||= nil
+ password = options[:password]
+ change_samba_password(password) if password
self.samba_lm_password ||= "XXX"
self.samba_nt_password ||= "XXX"
self.samba_pwd_last_set ||= "0"
@@ -109,6 +111,8 @@
elsif account_flags_is_not_set or enable_account == false
self.disable
end
+
+ self
end
def change_uid_number(uid, allow_non_unique=false)
More information about the asl-commit
mailing list