[asl-commit] ActiveSambaLdap r30:
null at cozmixng.org
null at cozmixng.org
Fri Aug 3 22:32:30 EDT 2007
retro 2007-08-04 11:32:29 +0900 (Sat, 04 Aug 2007)
New Revision: 30
Added files:
trunk/test/test_group.rb
Modified files:
trunk/lib/active_samba_ldap/group.rb
Log:
Added: trunk/test/test_group.rb (+21 -0)
===================================================================
--- trunk/test/test_group.rb 2006-11-14 18:07:35 +09:00 (rev 29)
+++ trunk/test/test_group.rb 2007-08-04 11:32:29 +09:00 (rev 30)
@@ -0,0 +1,21 @@
+require 'asl-test-utils'
+
+class GroupTest < Test::Unit::TestCase
+ include AslTestUtils
+
+ priority :must
+ def test_builtin_group
+ assert_sid("#{@group_class.configuration[:sid]}-543", 543)
+ (544..552).each do |rid|
+ assert_sid("S-1-5-32-#{rid}", rid)
+ end
+ assert_sid("#{@group_class.configuration[:sid]}-553", 553)
+ end
+
+ private
+ def assert_sid(expected, rid)
+ group = @group_class.new("XXX")
+ group.change_sid(rid)
+ assert_equal(expected, group.samba_sid)
+ end
+end
Modified: trunk/lib/active_samba_ldap/group.rb (+10 -3)
===================================================================
--- trunk/lib/active_samba_ldap/group.rb 2006-11-14 18:07:35 +09:00 (rev 29)
+++ trunk/lib/active_samba_ldap/group.rb 2007-08-04 11:32:29 +09:00 (rev 30)
@@ -4,6 +4,9 @@
class Group < Base
extend Unreloadable
+ # from librpc/ndr/security.h in Samba
+ SID_BUILTIN = "S-1-5-32"
+
# from source/include/rpc_misc.c in Samba
DOMAIN_ADMINS_RID = 0x00000200
DOMAIN_USERS_RID = 0x00000201
@@ -91,8 +94,8 @@
group = find_by_gid_number(gid_number)
raise GidNumberDoesNotExist.new(gid_number) if group.nil?
rescue ArgumentError
- group = new(key)
- raise GroupDoesNotExist.new(key) unless group.exists?
+ raise GroupDoesNotExist.new(key) unless exists?(key)
+ group = find(key)
end
group
end
@@ -214,7 +217,11 @@
end
def change_sid(rid, allow_non_unique=false)
- sid = "#{self.class.configuration[:sid]}-#{rid}"
+ if (LOCAL_ADMINS_RID..LOCAL_REPLICATORS_RID).include?(rid.to_i)
+ sid = "#{SID_BUILTIN}-#{rid}"
+ else
+ sid = "#{self.class.configuration[:sid]}-#{rid}"
+ end
# check_unique_sid_number(sid) unless allow_non_unique
self.samba_sid = sid
end
More information about the asl-commit
mailing list