Commit e3574e79 authored by Małgorzata Ksionek's avatar Małgorzata Ksionek

Add first new files for dashboard MVC

Remove debugger

Add first draft of a view

Add info to view

Refactor preloading collections
parent c40faffd
# frozen_string_literal: true
class Groups::Security::ComplianceDashboardController < Groups::ApplicationController
include SortingHelper
include Gitlab::IssuableMetadata
layout 'group'
before_action :authorize_compliance_dashboard!
def show
preload_for_collection = [:target_project, source_project: :route, target_project: :namespace, approvals: :user]
finder_options = {
scope: :all,
state: :merged,
sort: sort_value_recently_updated
}
finder_options[:group_id] = @group.id
finder_options[:include_subgroups] = true
finder_options[:attempt_group_search_optimizations] = true
@merge_requests = MergeRequestsFinder.new(current_user, finder_options).execute.preload(preload_for_collection).page(params[:page])
@issuable_meta_data = issuable_meta_data(@merge_requests, 'MergeRequest', current_user)
end
private
def authorize_compliance_dashboard!
render_403 unless group.feature_available?(:group_level_compliance_dashboard) &&
can?(current_user, :read_group_compliance_dashboard, group)
end
end
......@@ -102,6 +102,7 @@ class License < ApplicationRecord
type_of_work_analytics
unprotection_restrictions
ci_project_subscriptions
group_level_compliance_dashboard
]
EEP_FEATURES.freeze
......
......@@ -133,6 +133,10 @@ module EE
rule { security_dashboard_enabled & developer }.enable :read_group_security_dashboard
rule { admin | owner }.policy do
enable :read_group_compliance_dashboard
end
rule { needs_new_sso_session }.policy do
prevent :read_group
end
......
- max_render = 4
- approvers_rendering_overflow = merge_request.approved_by_users.size > max_render
- render_count = approvers_rendering_overflow ? max_render - 1 : max_render
- more_approvers_count = merge_request.approved_by_users.size - render_count
= _('Approved by: ')
- merge_request.approved_by_users.take(render_count).each do |approver| # rubocop: disable CodeReuse/ActiveRecord
= link_to_member(project, approver, name: true, title: "Approved by :name")
- if more_approvers_count.positive?
%span{ class: 'avatar-counter has-tooltip', data: { container: 'body', placement: 'bottom', 'line-type' => 'old', 'original-title' => "+#{more_assignees_count} more approvers", qa_selector: 'avatar_counter' } } +#{more_approvers_count}
%li{ id: dom_id(merge_request), class: mr_css_classes(merge_request), data: { labels: merge_request.label_ids, id: merge_request.id } }
.issuable-info-container
.issuable-main-info
.merge-request-title.title
%span.merge-request-title-text.js-onboarding-mr-item
= link_to merge_request.title, merge_request_path(merge_request)
.issuable-info
%span.issuable-reference
#{issuable_reference(merge_request)}
.issuable-meta
%ul.controls.d-flex.align-items-end
- if merge_request.approved_by_users.any?
%li.d-flex
= render 'approvers', project: merge_request.project, merge_request: merge_request
%span
= _('merged %{time_ago}').html_safe % { time_ago: time_ago_with_tooltip(merge_request.merged_at, placement: 'bottom', html_class: 'merge_request_updated_ago') }
- if @merge_requests.to_a.any?
.card.card-small.card-without-border
%ul.content-list.mr-list.issuable-list
= render partial: 'merge_request', collection: @merge_requests
= paginate @merge_requests, theme: "gitlab"
- else
= render 'shared/empty_states/merge_requests'
- breadcrumb_title _("Compliance Dashboard")
- page_title _("Compliance Dashboard")
= render "merge_requests"
......@@ -113,6 +113,7 @@ constraints(::Constraints::GroupUrlConstrainer.new) do
namespace :security do
resource :dashboard, only: [:show], controller: :dashboard
resource :compliance_dashboard, only: [:show], controller: :compliance_dashboard
resources :vulnerable_projects, only: [:index]
resources :vulnerability_findings, only: [:index] do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment