From 2da45e9cbf8bf0db88274451ba9dc61db50c571d Mon Sep 17 00:00:00 2001 From: gleb Date: Fri, 29 Jun 2012 13:44:55 +0200 Subject: [PATCH] Refs #1013 Renamed protect_resque.rb => resque_authentication Integrated resque web with the rest of gitlab --- app/controllers/admin/resque_controller.rb | 5 +++++ app/views/admin/dashboard/index.html.haml | 2 +- app/views/admin/resque/show.html.haml | 2 ++ app/views/layouts/admin.html.haml | 10 +++++----- config/initializers/protect_resque.rb | 5 ----- config/initializers/resque_authentication.rb | 14 ++++++++++++++ config/routes.rb | 1 + 7 files changed, 28 insertions(+), 11 deletions(-) create mode 100644 app/controllers/admin/resque_controller.rb create mode 100644 app/views/admin/resque/show.html.haml delete mode 100644 config/initializers/protect_resque.rb create mode 100644 config/initializers/resque_authentication.rb diff --git a/app/controllers/admin/resque_controller.rb b/app/controllers/admin/resque_controller.rb new file mode 100644 index 00000000..dc575cc2 --- /dev/null +++ b/app/controllers/admin/resque_controller.rb @@ -0,0 +1,5 @@ +class Admin::ResqueController < ApplicationController + layout 'admin' + def show + end +end \ No newline at end of file diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml index 0b0709ba..886943be 100644 --- a/app/views/admin/dashboard/index.html.haml +++ b/app/views/admin/dashboard/index.html.haml @@ -4,7 +4,7 @@ %h5 Resque Workers .data.padded - = link_to "/info/resque" do + = link_to admin_resque_path do %h1{:class => @workers.present? ? "cgreen" : "cred"} = @workers.count %hr diff --git a/app/views/admin/resque/show.html.haml b/app/views/admin/resque/show.html.haml new file mode 100644 index 00000000..26712953 --- /dev/null +++ b/app/views/admin/resque/show.html.haml @@ -0,0 +1,2 @@ +%h3 Resque +%iframe{:src => "/info/resque", :width => 1168, :height => 600, :style => "border: none"} \ No newline at end of file diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml index e48903a6..bac3e716 100644 --- a/app/views/layouts/admin.html.haml +++ b/app/views/layouts/admin.html.haml @@ -6,10 +6,10 @@ = render "layouts/head_panel", :title => "Admin area" .container %nav.main_menu - = link_to "Stats", admin_root_path, :class => "home #{controller.controller_name == "dashboard" ? "current" : nil}" - = link_to "Projects", admin_projects_path, :class => controller.controller_name == "projects" ? "current" : nil - = link_to "Users", admin_users_path, :class => controller.controller_name == "users" ? "current" : nil - = link_to "Emails", admin_emails_path, :class => controller.controller_name == "mailer" ? "current" : nil - = link_to "Resque", "/info/resque" + = link_to "Stats", admin_root_path, :class => "home #{'current' if controller.controller_name == "dashboard"}" + = link_to "Projects", admin_projects_path, :class => ('current' if controller.controller_name == "projects") + = link_to "Users", admin_users_path, :class => ('current' if controller.controller_name == 'users') + = link_to "Emails", admin_emails_path, :class => ('current' if controller.controller_name == 'mailer') + = link_to "Resque", admin_resque_path, :class => ('current' if controller.controller_name == 'resque') .content= yield diff --git a/config/initializers/protect_resque.rb b/config/initializers/protect_resque.rb deleted file mode 100644 index d52815ff..00000000 --- a/config/initializers/protect_resque.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'resque/server' -Resque::Server.use(Rack::Auth::Basic) do |user, password| - user == "gitlab" - password == "5iveL!fe" -end diff --git a/config/initializers/resque_authentication.rb b/config/initializers/resque_authentication.rb new file mode 100644 index 00000000..a439d322 --- /dev/null +++ b/config/initializers/resque_authentication.rb @@ -0,0 +1,14 @@ +require 'resque/server' +class Authentication + def initialize(app) + @app = app + end + + def call(env) + account = env['warden'].authenticate!(:database_authenticatable, :rememberable, scope: :user) + raise "Access denied" if !account.admin? + @app.call(env) + end +end + +Resque::Server.use Authentication \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 67e4aedd..ed4cec4f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -38,6 +38,7 @@ Gitlab::Application.routes.draw do get 'mailer/preview_note' get 'mailer/preview_user_new' get 'mailer/preview_issue_new' + resource :resque, :controller => 'resque' root :to => "dashboard#index" end