]> source.dussan.org Git - redmine.git/commitdiff
Mantis importer: few fixes in user mapping.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 6 Feb 2008 20:43:31 +0000 (20:43 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 6 Feb 2008 20:43:31 +0000 (20:43 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1127 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/tasks/migrate_from_mantis.rake

index 36e7e1514ba71a79983535705636ded22757055c..af8892a6bfa79cb93edb6deb5ad676d388660117 100644 (file)
@@ -87,18 +87,24 @@ task :migrate_from_mantis => :environment do
       set_table_name :mantis_user_table\r
       \r
       def firstname\r
-        realname.blank? ? username : realname.split.first[0..29]\r
+        @firstname = realname.blank? ? username : realname.split.first[0..29]\r
+        @firstname.gsub!(/[^\w\s\'\-]/i, '')\r
+        @firstname\r
       end\r
       \r
       def lastname\r
-        realname.blank? ? username : realname.split[1..-1].join(' ')[0..29]\r
+        @lastname = realname.blank? ? username : realname.split[1..-1].join(' ')[0..29]\r
+        @lastname.gsub!(/[^\w\s\'\-]/i, '')\r
+        @lastname = '-' if @lastname.blank?\r
+        @lastname\r
       end\r
       \r
       def email\r
-        if read_attribute(:email).match(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i)\r
-          read_attribute(:email)\r
+        if read_attribute(:email).match(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i) &&\r
+             !User.find_by_mail(read_attribute(:email))\r
+          @email = read_attribute(:email)\r
         else\r
-          "#{username}@foo.bar"\r
+          @email = "#{username}@foo.bar"\r
         end\r
       end\r
       \r
@@ -246,7 +252,7 @@ task :migrate_from_mantis => :environment do
        u.password = 'mantis'\r
        u.status = User::STATUS_LOCKED if user.enabled != 1\r
        u.admin = true if user.access_level == 90\r
-       next unless u.save\r
+       next unless u.save!\r
        users_migrated += 1\r
        users_map[user.id] = u.id\r
        print '.'\r