summaryrefslogtreecommitdiff
path: root/app/controllers/audit_events_controller.rb
blob: c62a5477a103bd3613e020fced56751834c5e682 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class AuditEventsController < ApplicationController
  # Authorize
  before_action :repository, only: :project_log
  before_action :authorize_admin_project!, only: :project_log
  before_action :group, only: :group_log
  before_action :authorize_admin_group!, only: :group_log

  layout :determine_layout

  def project_log
    @events = AuditEvent.where(entity_type: "Project", entity_id: project.id).page(params[:page]).per(20)
  end

  def group_log
    @events = AuditEvent.where(entity_type: "Group", entity_id: group.id).page(params[:page]).per(20)
  end

  private

  def group
    @group ||= Group.find_by(path: params[:group_id])
  end

  def authorize_admin_group!
    render_404 unless can?(current_user, :admin_group, group)
  end

  def determine_layout
    if @project
      'project_settings'
    elsif @group
      'group_settings'
    end
  end

  def audit_events_params
    params.permit(:project_id, :group_id)
  end
end