* 解决合并请求允许指派给开发者
* 开发者可以合并请求
* 更新仓库信息自动删除代码库模块
This commit is contained in:
jasder 2021-04-29 10:41:30 +08:00
commit c920994274
3 changed files with 10 additions and 2 deletions

View File

@ -140,7 +140,7 @@ class PullRequestsController < ApplicationController
end end
def pr_merge def pr_merge
return render_forbidden("你没有权限操作.") unless current_user.project_manager?(@project) return render_forbidden("你没有权限操作.") unless @project.develper?(current_user)
if params[:do].blank? if params[:do].blank?
normal_status(-1, "请选择合并方式") normal_status(-1, "请选择合并方式")
@ -215,7 +215,7 @@ class PullRequestsController < ApplicationController
def get_relatived def get_relatived
@project_tags = @project.issue_tags&.select(:id,:name, :color).as_json @project_tags = @project.issue_tags&.select(:id,:name, :color).as_json
@project_versions = @project.versions&.select(:id,:name, :status).as_json @project_versions = @project.versions&.select(:id,:name, :status).as_json
@project_members = @project.all_managers @project_members = @project.all_developers
@project_priories = IssuePriority&.select(:id,:name, :position).as_json @project_priories = IssuePriority&.select(:id,:name, :position).as_json
end end

View File

@ -99,6 +99,12 @@ module ProjectOperable
return User.from("( #{ member_sql } UNION #{ team_user_sql } ) AS users").distinct return User.from("( #{ member_sql } UNION #{ team_user_sql } ) AS users").distinct
end end
def all_developers
member_sql = User.joins(members: :roles).where(members: {project_id: self.id}, roles: {name: %w(Manager Developer)}).to_sql
team_user_sql = User.joins(teams: :team_projects).where(teams: {authorize: %w(owner admin write)}, team_projects: {project_id: self.id}).to_sql
return User.from("( #{ member_sql } UNION #{ team_user_sql } ) AS users").distinct
end
def all_managers def all_managers
member_sql = User.joins(members: :roles).where(members: {project_id: self.id}, roles: {name: %w(Manager)}).to_sql member_sql = User.joins(members: :roles).where(members: {project_id: self.id}, roles: {name: %w(Manager)}).to_sql
team_user_sql = User.joins(teams: :team_projects).where(teams: {authorize: %w(owner admin)},team_projects: {project_id: self.id}).to_sql team_user_sql = User.joins(teams: :team_projects).where(teams: {authorize: %w(owner admin)},team_projects: {project_id: self.id}).to_sql

View File

@ -27,6 +27,8 @@ class ProjectUnit < ApplicationRecord
end end
def self.update_by_unit_types!(project, types) def self.update_by_unit_types!(project, types)
# 默认code类型自动创建
types << "code"
project.project_units.where.not(unit_type: types).each(&:destroy!) project.project_units.where.not(unit_type: types).each(&:destroy!)
types.each do |type| types.each do |type|
project.project_units.find_or_create_by!(unit_type: type) project.project_units.find_or_create_by!(unit_type: type)