diff options
author | Valery Sizov <vsv2711@gmail.com> | 2015-03-23 15:41:16 +0200 |
---|---|---|
committer | Valery Sizov <vsv2711@gmail.com> | 2015-03-26 13:43:29 +0200 |
commit | b048c069e1982137f89b478b39c738680770073e (patch) | |
tree | a4a51c3a97373ef0a4824baea60fa21e76e5d8aa | |
parent | 60f0ab00ce56207aedd950042aacd3d2769b3e78 (diff) | |
download | gitlab-ci-b048c069e1982137f89b478b39c738680770073e.tar.gz |
events for admin
-rw-r--r-- | app/controllers/admin/events_controller.rb | 7 | ||||
-rw-r--r-- | app/controllers/projects_controller.rb | 5 | ||||
-rw-r--r-- | app/models/event.rb | 3 | ||||
-rw-r--r-- | app/services/create_project_service.rb | 5 | ||||
-rw-r--r-- | app/views/admin/events/index.html.haml | 19 | ||||
-rw-r--r-- | app/views/layouts/_nav.html.haml | 3 | ||||
-rw-r--r-- | config/routes.rb | 2 | ||||
-rw-r--r-- | db/migrate/20150320001810_create_event_table.rb | 1 | ||||
-rw-r--r-- | db/schema.rb | 1 |
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" |