Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-04-01 03:08:09 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-01 03:08:09 +0300
commit396ad86100541bed6bc9960541a7dcddfaddd6de (patch)
tree65f131996352948dbeb09d7ccd56107561c08fe3 /app
parentabae8f34f377519946a91101ef7abf504454531c (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects/settings/integrations_controller.rb13
-rw-r--r--app/finders/group_members_finder.rb13
-rw-r--r--app/models/members/group_member.rb1
-rw-r--r--app/models/project.rb18
-rw-r--r--app/models/service.rb2
-rw-r--r--app/models/system_note_metadata.rb4
6 files changed, 21 insertions, 30 deletions
diff --git a/app/controllers/projects/settings/integrations_controller.rb b/app/controllers/projects/settings/integrations_controller.rb
index a4a53676ec7..96bf7f474d1 100644
--- a/app/controllers/projects/settings/integrations_controller.rb
+++ b/app/controllers/projects/settings/integrations_controller.rb
@@ -3,23 +3,12 @@
module Projects
module Settings
class IntegrationsController < Projects::ApplicationController
- include ServiceParams
-
before_action :authorize_admin_project!
layout "project_settings"
def show
- @services = @project.find_or_initialize_services(exceptions: service_exceptions)
- end
-
- private
-
- # Returns a list of services that should be hidden from the list
- def service_exceptions
- @project.disabled_services.dup
+ @services = @project.find_or_initialize_services
end
end
end
end
-
-Projects::Settings::IntegrationsController.prepend_if_ee('EE::Projects::Settings::IntegrationsController')
diff --git a/app/finders/group_members_finder.rb b/app/finders/group_members_finder.rb
index ffa1552627a..bee18017cf3 100644
--- a/app/finders/group_members_finder.rb
+++ b/app/finders/group_members_finder.rb
@@ -1,10 +1,14 @@
# frozen_string_literal: true
class GroupMembersFinder < UnionFinder
+ include CreatedAtFilter
+
# Params can be any of the following:
# two_factor: string. 'enabled' or 'disabled' are returning different set of data, other values are not effective.
# sort: string
# search: string
+ # created_after: datetime
+ # created_before: datetime
def initialize(group, user = nil)
@group = group
@@ -15,6 +19,7 @@ class GroupMembersFinder < UnionFinder
def execute(include_relations: [:inherited, :direct], params: {})
group_members = group.members
relations = []
+ @params = params
return group_members if include_relations == [:direct]
@@ -39,15 +44,15 @@ class GroupMembersFinder < UnionFinder
return GroupMember.none if relations.empty?
members = find_union(relations, GroupMember)
- filter_members(members, params)
+ filter_members(members)
end
# rubocop: enable CodeReuse/ActiveRecord
private
- attr_reader :user, :group
+ attr_reader :user, :group, :params
- def filter_members(members, params)
+ def filter_members(members)
members = members.search(params[:search]) if params[:search].present?
members = members.sort_by_attribute(params[:sort]) if params[:sort].present?
@@ -55,7 +60,7 @@ class GroupMembersFinder < UnionFinder
members = members.filter_by_2fa(params[:two_factor])
end
- members
+ by_created_at(members)
end
def can_manage_members
diff --git a/app/models/members/group_member.rb b/app/models/members/group_member.rb
index bc3be67bd32..431a2ccf416 100644
--- a/app/models/members/group_member.rb
+++ b/app/models/members/group_member.rb
@@ -2,6 +2,7 @@
class GroupMember < Member
include FromUnion
+ include CreatedAtFilterable
SOURCE_TYPE = 'Namespace'
diff --git a/app/models/project.rb b/app/models/project.rb
index 5aec64da4cf..03b247f213b 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1238,14 +1238,12 @@ class Project < ApplicationRecord
update_column(:has_external_wiki, services.external_wikis.any?) if Gitlab::Database.read_write?
end
- def find_or_initialize_services(exceptions: [])
- available_services_names = Service.available_services_names - exceptions
+ def find_or_initialize_services
+ available_services_names = Service.available_services_names - disabled_services
- available_services = available_services_names.map do |service_name|
+ available_services_names.map do |service_name|
find_or_initialize_service(service_name)
end
-
- available_services.compact
end
def disabled_services
@@ -1258,13 +1256,11 @@ class Project < ApplicationRecord
service = find_service(services, name)
return service if service
- # We should check if template for the service exists
template = find_service(services_templates, name)
if template
Service.build_from_template(id, template)
else
- # If no template, we should create an instance. Ex `build_gitlab_ci_service`
public_send("build_#{name}_service") # rubocop:disable GitlabSecurity/PublicSend
end
end
@@ -1278,10 +1274,6 @@ class Project < ApplicationRecord
end
# rubocop: enable CodeReuse/ServiceClass
- def find_service(list, name)
- list.find { |service| service.to_param == name }
- end
-
def ci_services
services.where(category: :ci)
end
@@ -2422,6 +2414,10 @@ class Project < ApplicationRecord
private
+ def find_service(services, name)
+ services.find { |service| service.to_param == name }
+ end
+
def closest_namespace_setting(name)
namespace.closest_setting(name)
end
diff --git a/app/models/service.rb b/app/models/service.rb
index e4ae68cdaa7..6bb3a94ce81 100644
--- a/app/models/service.rb
+++ b/app/models/service.rb
@@ -348,7 +348,7 @@ class Service < ApplicationRecord
service.template = false
service.project_id = project_id
- service.active = false if service.active? && !service.valid?
+ service.active = false if service.active? && service.invalid?
service
end
diff --git a/app/models/system_note_metadata.rb b/app/models/system_note_metadata.rb
index 6324636db1e..b881a43ad4d 100644
--- a/app/models/system_note_metadata.rb
+++ b/app/models/system_note_metadata.rb
@@ -16,8 +16,8 @@ class SystemNoteMetadata < ApplicationRecord
ICON_TYPES = %w[
commit description merge confidential visible label assignee cross_reference
title time_tracking branch milestone discussion task moved
- opened closed merged duplicate locked unlocked
- outdated tag due_date pinned_embed cherry_pick
+ opened closed merged duplicate locked unlocked outdated
+ tag due_date pinned_embed cherry_pick health_status
].freeze
validates :note, presence: true