diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 2287e1968..217c47866 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -363,8 +363,20 @@ class ProjectsController < ApplicationController # 该邮箱未注册过 if !params[:mail].blank? && User.find_by_mail(params[:mail].to_s).nil? if !User.where("login =?", params[:mail]).first.nil? - # 用户名唯一,如果该邮箱被用户作为用户名使用则跳出 - flash[:error] = l(:notice_email_login_used) + # 用户名唯一,用户修改邮箱,未修改用户名,用户名等同邮箱的情况,默认改用户已经注册 + user = User.find_by_login(params[:mail].to_s) + if !user.member_of?(@project) + # 如果已经邀请过该用户,则不重复发送 + if InviteList.where("project_id =? and mail =?", @project.id, params[:mail].to_s).first.nil? + email = params[:mail] + Mailer.request_member_to_project(email, @project, User.current).deliver + flash[:notice] = l(:notice_email_sent, :value => email) + else + flash[:error] = l(:notice_email_invited) + end + else + flash[:error] = l(:label_member_of_project, :value => email) + end else email = params[:mail] Mailer.send_invite_in_project(email, @project, User.current).deliver