Commit 08586a61 authored by Valery Sizov's avatar Valery Sizov

Audit log for deploy keys

parent fbaf39ca
......@@ -25,6 +25,8 @@ class Projects::DeployKeysController < Projects::ApplicationController
@key = DeployKey.new(deploy_key_params)
if @key.valid? && @project.deploy_keys << @key
log_audit_event(@key.title, action: :create)
redirect_to namespace_project_deploy_keys_path(@project.namespace,
@project)
else
......@@ -36,6 +38,8 @@ class Projects::DeployKeysController < Projects::ApplicationController
@key = @project.deploy_keys.find(params[:id])
@key.destroy
log_audit_event(@key.title, action: :destroy)
respond_to do |format|
format.html { redirect_to namespace_project_deploy_keys_path(@project.namespace, @project) }
format.js { render nothing: true }
......@@ -65,4 +69,9 @@ class Projects::DeployKeysController < Projects::ApplicationController
def deploy_key_params
params.require(:deploy_key).permit(:key, :title)
end
def log_audit_event(key_title, options = {})
AuditEventService.new(current_user, @project, options).
for_deploy_key(key_title).security_event
end
end
......@@ -40,6 +40,30 @@ class AuditEventService
self
end
def for_deploy_key(key_title)
action = @details[:action]
@details =
case action
when :destroy
{
remove: "deploy_key",
target_id: key_title,
target_type: "DeployKey",
target_details: key_title,
}
when :create
{
add: "deploy_key",
target_id: key_title,
target_type: "DeployKey",
target_details: key_title,
}
end
self
end
def security_event
SecurityEvent.create(
author_id: @author.id,
......
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