[asl-commit] ActiveSambaLdap r47:

null at cozmixng.org null at cozmixng.org
Fri Aug 3 22:33:14 EDT 2007


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

  New Revision: 47

  Modified files:
    trunk/bin/asl-groupadd
    trunk/lib/active_samba_ldap/group.rb

  Log:


  Modified: trunk/bin/asl-groupadd (+9 -1)
===================================================================
--- trunk/bin/asl-groupadd	2006-11-15 18:07:30 +09:00 (rev 46)
+++ trunk/bin/asl-groupadd	2007-08-04 11:33:11 +09:00 (rev 47)
@@ -47,12 +47,20 @@
 end
 
 create_options = {
+  :cn => name,
   :gid_number => options.gid,
   :pool_class => UnixIdPool,
   :group_type => options.group_type,
 }
-group = Group.create(name, create_options)
+group = Group.create(create_options)
 
+unless group.errors.empty?
+  group.errors.each_full do |message|
+    $stderr.puts(message)
+  end
+  exit 1
+end
+
 if options.print_gid_number
   puts group.gid_number
 end

  Modified: trunk/lib/active_samba_ldap/group.rb (+18 -9)
===================================================================
--- trunk/lib/active_samba_ldap/group.rb	2006-11-15 18:07:30 +09:00 (rev 46)
+++ trunk/lib/active_samba_ldap/group.rb	2007-08-04 11:33:11 +09:00 (rev 47)
@@ -12,13 +12,22 @@
         init_associations(options)
       end
 
-      def create(name, options={})
-        gid_number, pool = ensure_gid_number(options)
-        group = new(name)
-        group.fill_default_values(options.merge(:gid_number => gid_number))
-        if group.save and pool
+      def create(attributes=nil)
+        pool = nil
+        group = super do |group|
+          options = attributes || {}
+          options = {:gid_number => group.gid_number}.merge(options)
+          gid_number, pool = ensure_gid_number(options)
+          group.fill_default_values(options.merge(:gid_number => gid_number))
+          yield group if block_given?
+        end
+        if group.errors.empty? and pool
           pool.gid_number = Integer(group.gid_number).succ
-          pool.save!
+          unless pool.save
+            pool.each do |key, value|
+              group.add("pool: #{key}", value)
+            end
+          end
         end
         group
       end
@@ -132,9 +141,9 @@
 
     def fill_default_values(options={})
       gid_number = options[:gid_number]
-      self.change_gid_number(gid_number) if gid_number
-      self.description = options[:description] || cn
-      self.display_name = options[:display_name] || cn
+      change_gid_number(gid_number) if gid_number
+      self.description ||= options[:description] || cn
+      self.display_name ||= options[:display_name] || cn
     end
 
     def members



More information about the asl-commit mailing list