audit_events_controller.rb 939 Bytes
Newer Older
1 2
class AuditEventsController < ApplicationController
  # Authorize
3 4 5 6
  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
7

Marin Jankovski's avatar
Marin Jankovski committed
8
  layout :determine_layout
9 10

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

Marin Jankovski's avatar
Marin Jankovski committed
14
  def group_log
15
    @events = AuditEvent.where(entity_type: "Group", entity_id: group.id).page(params[:page]).per(20)
Marin Jankovski's avatar
Marin Jankovski committed
16 17
  end

18 19
  private

Marin Jankovski's avatar
Marin Jankovski committed
20 21 22 23 24
  def group
    @group ||= Group.find_by(path: params[:group_id])
  end

  def authorize_admin_group!
25
    render_404 unless can?(current_user, :admin_group, group)
Marin Jankovski's avatar
Marin Jankovski committed
26 27 28 29 30 31
  end

  def determine_layout
    if @project
      'project_settings'
    elsif @group
32
      'group_settings'
Marin Jankovski's avatar
Marin Jankovski committed
33 34 35
    end
  end

36
  def audit_events_params
Marin Jankovski's avatar
Marin Jankovski committed
37
    params.permit(:project_id, :group_id)
38 39
  end
end