diff --git a/app/controllers/pull_rquests_controller.rb b/app/controllers/pull_rquests_controller.rb index c3f7c2925..aaef56595 100644 --- a/app/controllers/pull_rquests_controller.rb +++ b/app/controllers/pull_rquests_controller.rb @@ -10,7 +10,7 @@ class PullRquestsController < ApplicationController end - def find_project + def find_project_and_repository @project = Project.find(params[:project_id]) @repository = Repository.where(:project_id => @project.id, :type => "Repository::Gitlab") rescue ActiveRecord::RecordNotFound diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d64d95223..9d0439120 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -814,6 +814,18 @@ module ApplicationHelper return @result end + # 必须是项目成,项目必须提交过代码 + def allow_pull_request project + return false if project.gpid.nil? + g = Gitlab.client + count = g.user_static(project.gpid, :rev => "master").count + if User.current.member_of?(project) && count > 0 + true + else + false + end + end + # 判断版本库是否初始为gitlab def rep_is_gitlab?(project) rep = project.repositories.where("type =?", "Repository::Gitlab") diff --git a/app/views/projects/_development_group.html.erb b/app/views/projects/_development_group.html.erb index 0647fcd1e..d8d25dd3d 100644 --- a/app/views/projects/_development_group.html.erb +++ b/app/views/projects/_development_group.html.erb @@ -57,9 +57,9 @@ <% end %> -<% if User.current.member_of?(@project) %> +<% if allow_pull_request(@project) %>