From fb76bc8f9ae67fec35e09f6c6491b51ce0015a5a Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 18 Sep 2015 23:18:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=A1=B9=E7=9B=AE=E9=82=80?= =?UTF-8?q?=E8=AF=B7=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5=E5=8F=8A=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E9=A1=B5=E9=9D=A2=20=E8=A7=A3=E5=86=B3=E9=98=B2?= =?UTF-8?q?=E6=B3=A8=E5=85=A5=E9=97=AE=E9=A2=98=EF=BC=88=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E9=9A=8F=E6=9C=BA6=E4=B8=BA=E5=AF=86=E7=A0=81=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 12 +++++++ app/helpers/projects_helper.rb | 2 +- app/models/forge_message.rb | 2 +- app/models/mailer.rb | 3 +- app/views/users/user_messages.html.erb | 33 ++++++++++++++++++- ...8134804_add_secret_key_to_forge_message.rb | 5 +++ db/schema.rb | 6 ++-- 7 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20150918134804_add_secret_key_to_forge_message.rb diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 6da45c10b..71b852e01 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -464,6 +464,10 @@ class ProjectsController < ApplicationController # by young # include CoursesHelper def member + # 消息"同意加入项目" + if params[:message_id] + message_invite(params[:message_id], params[:key]) + end # params[:login]为邮箱邀请用户加入,主要功能: # 1、自动注册 # 2、加入项目、创建角色 @@ -519,6 +523,14 @@ class ProjectsController < ApplicationController @members = paginateHelper @members end + def message_invite(message_id, key) + forge_message = ForgeMessage.find(message_id) + if key == forge_message.secret_key + Member.create(:role_ids => [4], :user_id => forge_message.user_id, :project_id => forge_message.project_id) + UserGrade.create(:user_id => forge_message.user_id, :project_id => forge_message.project_id) + end + end + #判断指定用户是否为课程教师 def isCourseTeacher(id) result = false diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 7b4b9d2e4..6a865b203 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -83,7 +83,7 @@ module ProjectsHelper elsif ivite_list.user.active? value = "邀请已发送,等待用户加入!" else - value = "账号尚未激活,等待用户应答!" + value = "邀请已发送,等待用户激活账号!" end end diff --git a/app/models/forge_message.rb b/app/models/forge_message.rb index 0c8b3384f..0dce57598 100644 --- a/app/models/forge_message.rb +++ b/app/models/forge_message.rb @@ -8,7 +8,7 @@ class ForgeMessage < ActiveRecord::Base TYPE_OF_WIKI_ACT = "Wiki" TYPE_OF_NEWS_ACT = "News" - attr_accessible :forge_message_id, :forge_message_type, :project_id, :user_id, :viewed + attr_accessible :forge_message_id, :forge_message_type, :project_id, :user_id, :viewed, :secret_key belongs_to :forge_message ,:polymorphic => true belongs_to :project diff --git a/app/models/mailer.rb b/app/models/mailer.rb index c9ab6e58e..e5ca8130e 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -89,7 +89,8 @@ class Mailer < ActionMailer::Base # 邀请信息消息 注:forge_message_id 为邀请人ID(特殊情况) def send_message(user, project) - ForgeMessage.create(:user_id => user.id, :project_id => project.id, :forge_message_type => "Project_Invite",:forge_message_id => User.current.id, :viewed => false) + key = newpass(6).to_s + ForgeMessage.create(:user_id => user.id, :project_id => project.id, :forge_message_type => "ProjectInvite",:forge_message_id => User.current.id, :viewed => false, :secret_key =>key) end # author: alan diff --git a/app/views/users/user_messages.html.erb b/app/views/users/user_messages.html.erb index 5ac9f7e8e..9d1532282 100644 --- a/app/views/users/user_messages.html.erb +++ b/app/views/users/user_messages.html.erb @@ -74,9 +74,10 @@ <% end %> <% end %> - <%# 课程消息 %> + <% unless @message_alls.nil? %> <% @message_alls.each do |ma| %> + <%# 课程消息 %> <% if ma.class == CourseMessage %> <% if ma.course_message_type == "News" %>