##// END OF EJS Templates
Trac importer: read session_attribute table to find user's email and real name (#1340)....
Jean-Philippe Lang -
r1488:042da97f5418
parent child
Show More
@@ -195,6 +195,10 namespace :redmine do
195 set_table_name :permission
195 set_table_name :permission
196 end
196 end
197
197
198 class TracSessionAttribute < ActiveRecord::Base
199 set_table_name :session_attribute
200 end
201
198 def self.find_or_create_user(username, project_member = false)
202 def self.find_or_create_user(username, project_member = false)
199 return User.anonymous if username.blank?
203 return User.anonymous if username.blank?
200
204
@@ -202,10 +206,23 namespace :redmine do
202 if !u
206 if !u
203 # Create a new user if not found
207 # Create a new user if not found
204 mail = username[0,limit_for(User, 'mail')]
208 mail = username[0,limit_for(User, 'mail')]
209 if mail_attr = TracSessionAttribute.find_by_sid_and_name(username, 'email')
210 mail = mail_attr.value
211 end
205 mail = "#{mail}@foo.bar" unless mail.include?("@")
212 mail = "#{mail}@foo.bar" unless mail.include?("@")
206 u = User.new :firstname => username[0,limit_for(User, 'firstname')].gsub(/[^\w\s\'\-]/i, '-'),
213
207 :lastname => '-',
214 name = username
208 :mail => mail.gsub(/[^-@a-z0-9\.]/i, '-')
215 if name_attr = TracSessionAttribute.find_by_sid_and_name(username, 'name')
216 name = name_attr.value
217 end
218 name =~ (/(.*)(\s+\w+)?/)
219 fn = $1.strip
220 ln = ($2 || '-').strip
221
222 u = User.new :mail => mail.gsub(/[^-@a-z0-9\.]/i, '-'),
223 :firstname => fn[0, limit_for(User, 'firstname')].gsub(/[^\w\s\'\-]/i, '-'),
224 :lastname => ln[0, limit_for(User, 'lastname')].gsub(/[^\w\s\'\-]/i, '-')
225
209 u.login = username[0,limit_for(User, 'login')].gsub(/[^a-z0-9_\-@\.]/i, '-')
226 u.login = username[0,limit_for(User, 'login')].gsub(/[^a-z0-9_\-@\.]/i, '-')
210 u.password = 'trac'
227 u.password = 'trac'
211 u.admin = true if TracPermission.find_by_username_and_action(username, 'admin')
228 u.admin = true if TracPermission.find_by_username_and_action(username, 'admin')
General Comments 0
You need to be logged in to leave comments. Login now