|
|
|
@ -33,7 +33,7 @@ class ProjectsController < ApplicationController
|
|
|
|
|
before_filter :require_admin, :only => [ :copy, :archive, :unarchive, :destroy, :calendar]
|
|
|
|
|
before_filter :file, :statistics #:watcherlist
|
|
|
|
|
# 除非项目内人员,不可查看成员, TODO: 完了写报表里去
|
|
|
|
|
before_filter :memberAccess, only: :member
|
|
|
|
|
# before_filter :memberAccess, only: :member
|
|
|
|
|
|
|
|
|
|
# accept_rss_auth :index
|
|
|
|
|
accept_api_auth :index, :show, :create, :update, :destroy
|
|
|
|
@ -359,17 +359,28 @@ class ProjectsController < ApplicationController
|
|
|
|
|
|
|
|
|
|
# 两种情况:1、系统外用户;2、系统内用户 (通过邮件判定)
|
|
|
|
|
def send_mail_to_member
|
|
|
|
|
# 该邮箱未注册过
|
|
|
|
|
if !params[:mail].blank? && User.find_by_mail(params[:mail].to_s).nil?
|
|
|
|
|
email = params[:mail]
|
|
|
|
|
Mailer.run.send_invite_in_project(email, @project, User.current)
|
|
|
|
|
@is_zhuce = false
|
|
|
|
|
flash[:notice] = l(:notice_email_sent, :value => email)
|
|
|
|
|
if !User.where("login =?", params[:mail]).first.nil?
|
|
|
|
|
# 用户名唯一,如果该邮箱被用户作为用户名使用则跳出
|
|
|
|
|
flash[:error] = l(:notice_email_login_used)
|
|
|
|
|
else
|
|
|
|
|
email = params[:mail]
|
|
|
|
|
Mailer.send_invite_in_project(email, @project, User.current).deliver
|
|
|
|
|
@is_zhuce = false
|
|
|
|
|
flash[:notice] = l(:notice_email_sent, :value => email)
|
|
|
|
|
end
|
|
|
|
|
elsif !User.find_by_mail(params[:mail].to_s).nil?
|
|
|
|
|
user = User.find_by_mail(params[:mail].to_s)
|
|
|
|
|
if !user.member_of?(@project)
|
|
|
|
|
email = params[:mail]
|
|
|
|
|
Mailer.run.request_member_to_project(email, @project, User.current)
|
|
|
|
|
flash[:notice] = l(:notice_email_sent, :value => email)
|
|
|
|
|
# 如果已经邀请过该用户,则不重复发送
|
|
|
|
|
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
|
|
|
|
@ -450,6 +461,10 @@ class ProjectsController < ApplicationController
|
|
|
|
|
flash[:notice] = l(:label_mail_invite_success)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
unless @project.is_public?
|
|
|
|
|
return render_403 unless User.current.member_of?(@project)
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
## 有角色参数的才是课程,没有的就是项目
|
|
|
|
|
@render_file = 'project_member_list'
|
|
|
|
|
# 判断是否课程
|
|
|
|
|