summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Sizov <vsv2711@gmail.com>2015-03-23 15:41:16 +0200
committerValery Sizov <vsv2711@gmail.com>2015-03-26 13:43:29 +0200
commitb048c069e1982137f89b478b39c738680770073e (patch)
treea4a51c3a97373ef0a4824baea60fa21e76e5d8aa
parent60f0ab00ce56207aedd950042aacd3d2769b3e78 (diff)
downloadgitlab-ci-b048c069e1982137f89b478b39c738680770073e.tar.gz
events for admin
-rw-r--r--app/controllers/admin/events_controller.rb7
-rw-r--r--app/controllers/projects_controller.rb5
-rw-r--r--app/models/event.rb3
-rw-r--r--app/services/create_project_service.rb5
-rw-r--r--app/views/admin/events/index.html.haml19
-rw-r--r--app/views/layouts/_nav.html.haml3
-rw-r--r--config/routes.rb2
-rw-r--r--db/migrate/20150320001810_create_event_table.rb1
-rw-r--r--db/schema.rb1
9 files changed, 46 insertions, 0 deletions
diff --git a/app/controllers/admin/events_controller.rb b/app/controllers/admin/events_controller.rb
new file mode 100644
index 0000000..d4aa75e
--- /dev/null
+++ b/app/controllers/admin/events_controller.rb
@@ -0,0 +1,7 @@
+class Admin::EventsController < Admin::ApplicationController
+ EVENTS_PER_PAGE = 50
+
+ def index
+ @events = Event.admin.order('created_at DESC').page(params[:page]).per(EVENTS_PER_PAGE)
+ end
+end \ No newline at end of file
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 84481b7..fda1b87 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -77,6 +77,11 @@ class ProjectsController < ApplicationController
project.destroy
Network.new.disable_ci(current_user.url, project.gitlab_id, current_user.private_token)
+ Event.admin.create(
+ description: "Project '#{@project.name}' has been removed by #{current_user.username}",
+ user_id: current_user.id
+ )
+
redirect_to projects_url
end
diff --git a/app/models/event.rb b/app/models/event.rb
index 27413d1..962e53d 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -4,4 +4,7 @@ class Event < ActiveRecord::Base
validates :description,
presence: true,
length: { in: 5..200 }
+
+ scope :admin, ->(){ where(is_admin: true) }
+ scope :project_wide, ->(){ where(is_admin: false) }
end
diff --git a/app/services/create_project_service.rb b/app/services/create_project_service.rb
index c012b8a..6f1eb8e 100644
--- a/app/services/create_project_service.rb
+++ b/app/services/create_project_service.rb
@@ -20,6 +20,11 @@ class CreateProjectService
end
end
+ Event.admin.create(
+ description: "Project '#{@project.name}' has been created by #{current_user.username}",
+ user_id: current_user.id
+ )
+
@project
end
end
diff --git a/app/views/admin/events/index.html.haml b/app/views/admin/events/index.html.haml
new file mode 100644
index 0000000..779f49b
--- /dev/null
+++ b/app/views/admin/events/index.html.haml
@@ -0,0 +1,19 @@
+%h3.page-title Events
+
+%table.table
+ %thead
+ %tr
+ %th User ID
+ %th Description
+ %th When
+ - @events.each do |event|
+ %tr
+ %td
+ = event.user_id
+ %td
+ = event.description
+ %td.light
+ = time_ago_in_words event.updated_at
+ ago
+
+= paginate @events \ No newline at end of file
diff --git a/app/views/layouts/_nav.html.haml b/app/views/layouts/_nav.html.haml
index fc32c62..45dd7e1 100644
--- a/app/views/layouts/_nav.html.haml
+++ b/app/views/layouts/_nav.html.haml
@@ -19,6 +19,9 @@
%li
= link_to admin_builds_path do
Builds
+ %li
+ = link_to admin_events_path do
+ Events
%li
= link_to 'Help', help_path
diff --git a/config/routes.rb b/config/routes.rb
index 9ff6c5d..a176114 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -81,6 +81,8 @@ Rails.application.routes.draw do
end
end
+ resources :events, only: [:index]
+
resources :projects do
resources :runner_projects
end
diff --git a/db/migrate/20150320001810_create_event_table.rb b/db/migrate/20150320001810_create_event_table.rb
index ea4f93c..555aee9 100644
--- a/db/migrate/20150320001810_create_event_table.rb
+++ b/db/migrate/20150320001810_create_event_table.rb
@@ -3,6 +3,7 @@ class CreateEventTable < ActiveRecord::Migration
create_table :events do |t|
t.integer :project_id
t.integer :user_id
+ t.integer :is_admin
t.text :description
t.timestamps
diff --git a/db/schema.rb b/db/schema.rb
index d488ce1..b7b58ce 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -60,6 +60,7 @@ ActiveRecord::Schema.define(version: 20150320001810) do
create_table "events", force: true do |t|
t.integer "project_id"
t.integer "user_id"
+ t.integer "is_admin"
t.text "description"
t.datetime "created_at"
t.datetime "updated_at"