添加实训合作者,数据同步github

This commit is contained in:
huang 2017-08-17 17:18:30 +08:00
parent 90c01ff9d8
commit f2fe59ed0f
1 changed files with 26 additions and 5 deletions

View File

@ -184,17 +184,38 @@ class ShixunsController < ApplicationController
end
end
# 事务处理保证Trustie与Gitlab数据同步
def shixun_members_added
unless params[:membership][:user_ids].blank?
memberships = params[:membership][:user_ids]
memberships.each do |member|
ShixunMember.create(:user_id => member, :shixun_id => @shixun.id, :role => 2)
ActiveRecord::Base.transaction do
begin
user = User.find(member)
s = Trustie::Gitlab::Sync.new
if user.gid.present?
gid = user.gid
else
guser = s.sync_user(user)
gid = guser.id
end
ShixunMember.create(:user_id => member, :shixun_id => @shixun.id, :role => 2)
u = s.g.add_team_member(@shixun.gpid, gid, 40) # 3代表角色master
if u.blank?
raise("同步Gitlab数据错误")
end
@collaborators = @shixun.collaborators
respond_to do |format|
format.js
end
rescue Exception => e
logger.error(e)
raise ActiveRecord::Rollback
end
end
end
@collaborators = @shixun.collaborators
end
respond_to do |format|
format.js
end
end
def search
@ -619,7 +640,7 @@ class ShixunsController < ApplicationController
# REDO: 新增类型copy的时候
# 复制项目
# gshixun --> gitlab project
CODES = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z)
# CODES = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z)
def copy_myshixun shixun, gshixun
myshixun = Myshixun.new
# myshixun.attributes = shixun.attributes.dup.except("id","user_id","visits","gpid","status", "identifier","propaedeutics")