[asl-commit] ActiveSambaLdap r32:

null at cozmixng.org null at cozmixng.org
Fri Aug 3 22:32:35 EDT 2007


retro	2007-08-04 11:32:34 +0900 (Sat, 04 Aug 2007)

  New Revision: 32

  Modified files:
    trunk/lib/active_samba_ldap/configuration.rb

  Log:


  Modified: trunk/lib/active_samba_ldap/configuration.rb (+22 -4)
===================================================================
--- trunk/lib/active_samba_ldap/configuration.rb	2006-11-15 13:31:19 +09:00 (rev 31)
+++ trunk/lib/active_samba_ldap/configuration.rb	2007-08-04 11:32:34 +09:00 (rev 32)
@@ -183,19 +183,20 @@
         end
 
         def users_prefix
-          "ou=Users"
+          retrieve_value_from_smb_conf(/ldap\s+user\s+suffix/i) || "ou=Users"
         end
 
         def groups_prefix
-          "ou=Groups"
+          retrieve_value_from_smb_conf(/ldap\s+group\s+suffix/i) || "ou=Groups"
         end
 
         def computers_prefix
-          "ou=Computers"
+          retrieve_value_from_smb_conf(/ldap\s+machine\s+suffix/i) ||
+            "ou=Computers"
         end
 
         def idmap_prefix
-          "ou=Idmap"
+          retrieve_value_from_smb_conf(/ldap\s+idmap\s+suffix/i) || "ou=Idmap"
         end
 
         def start_uid
@@ -253,6 +254,23 @@
         def bind_dn
           nil
         end
+
+        private
+        def retrieve_value_from_smb_conf(key)
+          smb_conf = self['smb_conf']
+          if smb_conf and File.readable?(smb_conf)
+            line = File.read(smb_conf).grep(key).reject do |l|
+              /^\s*[#;]/ =~ l
+            end.first
+            if line
+              line.split(/=/, 2)[1].strip
+            else
+              nil
+            end
+          else
+            nil
+          end
+        end
       end
     end
   end



More information about the asl-commit mailing list