OSDN Git Service

Refs #1013
authorgleb <glex.spb@gmail.com>
Fri, 29 Jun 2012 11:44:55 +0000 (13:44 +0200)
committergleb <glex.spb@gmail.com>
Fri, 29 Jun 2012 11:46:24 +0000 (13:46 +0200)
Renamed protect_resque.rb => resque_authentication
Integrated resque web with the rest of gitlab

app/controllers/admin/resque_controller.rb [new file with mode: 0644]
app/views/admin/dashboard/index.html.haml
app/views/admin/resque/show.html.haml [new file with mode: 0644]
app/views/layouts/admin.html.haml
config/initializers/protect_resque.rb [deleted file]
config/initializers/resque_authentication.rb [new file with mode: 0644]
config/routes.rb

diff --git a/app/controllers/admin/resque_controller.rb b/app/controllers/admin/resque_controller.rb
new file mode 100644 (file)
index 0000000..dc575cc
--- /dev/null
@@ -0,0 +1,5 @@
+class Admin::ResqueController < ApplicationController
+  layout 'admin'
+  def show
+  end
+end
\ No newline at end of file
index 0b0709b..886943b 100644 (file)
@@ -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 (file)
index 0000000..2671295
--- /dev/null
@@ -0,0 +1,2 @@
+%h3 Resque
+%iframe{:src => "/info/resque", :width => 1168, :height => 600, :style => "border: none"}
\ No newline at end of file
index e48903a..bac3e71 100644 (file)
@@ -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 (file)
index d52815f..0000000
+++ /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 (file)
index 0000000..a439d32
--- /dev/null
@@ -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
index 67e4aed..ed4cec4 100644 (file)
@@ -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