diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 4cec85833..8a1b3bbe0 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -125,20 +125,8 @@ update @repository.type = 'Repository::Gitlab' @repository.url = @repository.identifier if request.post? && @repository.save - g = ::Gitlab.client - gid = @project.owner.gid - gproject = g.create_project(@repository.identifier, - path: @repository.identifier, - description: @project.description, - wiki_enabled: false, - wall_enabled: false, - issues_enabled: false, - snippets_enabled: false, - public: false, - user_id: gid - ) - @project.gpid = gproject.id - @project.save! + s = Trustie::Gitlab::Sync.new + s.create_project(@project, @repository) redirect_to settings_project_url(@project, :tab => 'repositories') else redirect_to settings_project_url(@project, :tab => 'repositories',:repository_error_message=>@repository.errors.full_messages) diff --git a/app/models/user.rb b/app/models/user.rb index e68fc7d8e..edc29c015 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -209,7 +209,7 @@ class User < Principal validates_inclusion_of :mail_notification, :in => MAIL_NOTIFICATION_OPTIONS.collect(&:first), :allow_blank => true validate :validate_password_length # validates_email_realness_of :mail - before_create :set_mail_notification, :sync_gitlab_user + before_create :set_mail_notification before_save :update_hashed_password before_destroy :remove_references_before_destroy # added by fq @@ -218,6 +218,8 @@ class User < Principal # 更新邮箱用户或用户名的同事,同步更新邀请信息 after_update :update_invite_list + include Trustie::Gitlab::ManageUser + scope :in_group, lambda {|group| group_id = group.is_a?(Group) ? group.id : group.to_i where("#{User.table_name}.id IN (SELECT gu.user_id FROM #{table_name_prefix}groups_users#{table_name_suffix} gu WHERE gu.group_id = ?)", group_id) diff --git a/app/views/courses/syllabus.html.erb b/app/views/courses/syllabus.html.erb index 18f5817b0..bf6980dd2 100644 --- a/app/views/courses/syllabus.html.erb +++ b/app/views/courses/syllabus.html.erb @@ -58,7 +58,7 @@ '取消大纲', {:controller => 'blog_comments',:action => 'destroy',:user_id=>BlogComment.find(@course.outline).author_id,:blog_id=>BlogComment.find(@course.outline).blog_id, :id => @course.outline,:course_id=>@course.id}, :method => :delete, - :data => {:confirm => l(:text_are_you_sure)}, + :data => {:confirm => '确定取消么'}, :class => 'postOptionLink' ) if User.current && User.current.id == @article.author.id %> diff --git a/app/views/layouts/_new_feedback.html.erb b/app/views/layouts/_new_feedback.html.erb index 8814d1043..0ef55d278 100644 --- a/app/views/layouts/_new_feedback.html.erb +++ b/app/views/layouts/_new_feedback.html.erb @@ -25,7 +25,7 @@ <%#= l(:label_technical_support) %> - + 请加入:师姐答疑群 diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index 7b951f152..1eddeb517 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -46,7 +46,7 @@
<% if (@user.user_extensions && (@user.user_extensions.identity != 2) ) %> diff --git a/app/views/my/account.html.erb b/app/views/my/account.html.erb index 7bc674ea6..7e39ad5fa 100644 --- a/app/views/my/account.html.erb +++ b/app/views/my/account.html.erb @@ -170,7 +170,7 @@
  • 确认 - +
  • diff --git a/app/views/users/_user_homework_detail.html.erb b/app/views/users/_user_homework_detail.html.erb index cffb1d97a..fb4ec6bbe 100644 --- a/app/views/users/_user_homework_detail.html.erb +++ b/app/views/users/_user_homework_detail.html.erb @@ -41,6 +41,11 @@ <%= homework_common.language_name%>
    <% end %> + <% if homework_common.homework_detail_manual.comment_status == 0 %> +
    + <%= l(:label_publish_time)%>:<%= homework_common.publish_time%> +
    + <% end %>
    <%= l(:label_end_time)%>:<%= homework_common.end_time%>
    diff --git a/config/locales/zh.yml b/config/locales/zh.yml index a7274c3c2..12c1b9258 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -2024,6 +2024,7 @@ zh: label_creat: 创建 #api end + label_publish_time: 发布时间 label_end_time: 截止时间 label_send_email: 确定发送 label_input_email: 请输入邮箱地址(必填) diff --git a/lib/gitlab-cli/lib/gitlab/client/users.rb b/lib/gitlab-cli/lib/gitlab/client/users.rb index 3fc83cd1b..37bfc0d74 100644 --- a/lib/gitlab-cli/lib/gitlab/client/users.rb +++ b/lib/gitlab-cli/lib/gitlab/client/users.rb @@ -60,6 +60,11 @@ class Gitlab::Client put("/users/#{user_id}", :body => options) end + + def delete_user(user_id) + delete("/users/#{user_id}") + end + # Creates a new user session. # # @example diff --git a/lib/trustie/gitlab/helper.rb b/lib/trustie/gitlab/helper.rb index 5ea4c13e1..57c333875 100644 --- a/lib/trustie/gitlab/helper.rb +++ b/lib/trustie/gitlab/helper.rb @@ -4,15 +4,26 @@ module Trustie module Gitlab module Helper def change_password(uid, en_pwd, salt) + return unless uid options = {:encrypted_password=>en_pwd, :password_salt=>salt} self.g.put("/users/ext/#{uid}", :body => options) # g.edit_user(uid, :encrypted_password=>en_pwd, :password_salt=>salt) end + def find_user(user) + us = self.g.get("/users?search=#{user.mail}") + if Array === us + us.each do |u| + return u if u.email == user.mail + end + end + return nil + end + def add_user(user) u = nil begin - u = self.g.get("/users?search=#{user.mail}").first + u = find_user(user) unless u u = self.g.create_user(user.mail, user.hashed_password, @@ -29,7 +40,8 @@ module Trustie end def del_user(user) - ## gitlab unimplement + return unless user.gid + self.g.delete_user(user.gid) end end diff --git a/lib/trustie/gitlab/manage_user.rb b/lib/trustie/gitlab/manage_user.rb index 76528739c..a87984490 100644 --- a/lib/trustie/gitlab/manage_user.rb +++ b/lib/trustie/gitlab/manage_user.rb @@ -9,8 +9,8 @@ module Trustie def self.included(base) base.class_eval { - before_create :add_gitlab_user - before_destroy :delete_gitlab_user + #before_create :add_gitlab_user + #before_destroy :delete_gitlab_user before_save :change_gitlab_user } end @@ -27,7 +27,6 @@ module Trustie change_password(self.gid, self.hashed_password, self.salt) end - private def g @g ||= ::Gitlab.client end diff --git a/lib/trustie/gitlab/sync.rb b/lib/trustie/gitlab/sync.rb index ae1cded6c..3a8e8380c 100644 --- a/lib/trustie/gitlab/sync.rb +++ b/lib/trustie/gitlab/sync.rb @@ -26,10 +26,37 @@ module Trustie user.mail_notification = "day" end user.save! + u + end + + + def create_project(project, repository) + gid = project.owner.gid + unless gid + gid = sync_user(project.owner).id + end + raise "unknow gid" unless gid + + gproject = g.create_project(repository.identifier, + path: repository.identifier, + description: project.description, + wiki_enabled: false, + wall_enabled: false, + issues_enabled: false, + snippets_enabled: false, + public: false, + user_id: gid + ) + project.gpid = gproject.id + project.save! end def sync_project(project, opt={}) gid = project.owner.gid + unless gid + gid = sync_user(project.owner).id + end + raise "unknow gid" unless gid path = opt[:path] raise "unknow path" unless path @@ -61,7 +88,11 @@ module Trustie project.members.each do |m| begin - self.g.add_team_member(gproject.id, m.user.gid, UserLevel::DEVELOPER) + gid = m.user.gid + unless gid + gid = sync_user(m.user).id + end + self.g.add_team_member(gproject.id, gid, UserLevel::DEVELOPER) rescue => e puts e end diff --git a/public/javascripts/course.js b/public/javascripts/course.js index ed920b48a..da24e2878 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -666,6 +666,7 @@ function regex_homework_end_publish_time() $("#homework_publish_time").val(myDate.toLocaleDateString()); } var publish_time = Date.parse($("#homework_publish_time").val()); + var end_time = Date.parse($("#homework_end_time").val()); if(end_time < publish_time) { $("#homework_end_time_span").text("截止日期不能小于发布日期"); @@ -1258,4 +1259,4 @@ function course_outline(id){ // $('#course_outline_search').on('input',function(){ // alert('<%= @course.id%>') // }) -//}) +//})