| @@ -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 | ||||
| @@ -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 | ||||
| @@ -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) | ||||