Add an AdminController base class for Admin controllers
Handles stuff that's shared across admin controllers.
This commit is contained in:
parent
83f24de352
commit
925183ed7a
9 changed files with 27 additions and 44 deletions
|
@ -1,8 +1,4 @@
|
||||||
class Admin::DashboardController < ApplicationController
|
class Admin::DashboardController < AdminController
|
||||||
layout "admin"
|
|
||||||
before_filter :authenticate_user!
|
|
||||||
before_filter :authenticate_admin!
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@workers = Resque.workers
|
@workers = Resque.workers
|
||||||
@pending_jobs = Resque.size(:post_receive)
|
@pending_jobs = Resque.size(:post_receive)
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
class Admin::HooksController < ApplicationController
|
class Admin::HooksController < AdminController
|
||||||
layout "admin"
|
|
||||||
before_filter :authenticate_user!
|
|
||||||
before_filter :authenticate_admin!
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@hooks = SystemHook.all
|
@hooks = SystemHook.all
|
||||||
@hook = SystemHook.new
|
@hook = SystemHook.new
|
||||||
|
@ -15,7 +11,7 @@ class Admin::HooksController < ApplicationController
|
||||||
redirect_to admin_hooks_path, notice: 'Hook was successfully created.'
|
redirect_to admin_hooks_path, notice: 'Hook was successfully created.'
|
||||||
else
|
else
|
||||||
@hooks = SystemHook.all
|
@hooks = SystemHook.all
|
||||||
render :index
|
render :index
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,2 @@
|
||||||
class Admin::LogsController < ApplicationController
|
class Admin::LogsController < AdminController
|
||||||
layout "admin"
|
|
||||||
before_filter :authenticate_user!
|
|
||||||
before_filter :authenticate_admin!
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
class Admin::ProjectsController < ApplicationController
|
class Admin::ProjectsController < AdminController
|
||||||
layout "admin"
|
|
||||||
before_filter :authenticate_user!
|
|
||||||
before_filter :authenticate_admin!
|
|
||||||
before_filter :admin_project, only: [:edit, :show, :update, :destroy, :team_update]
|
before_filter :admin_project, only: [:edit, :show, :update, :destroy, :team_update]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
|
@ -43,7 +40,7 @@ class Admin::ProjectsController < ApplicationController
|
||||||
def update
|
def update
|
||||||
owner_id = params[:project].delete(:owner_id)
|
owner_id = params[:project].delete(:owner_id)
|
||||||
|
|
||||||
if owner_id
|
if owner_id
|
||||||
@admin_project.owner = User.find(owner_id)
|
@admin_project.owner = User.find(owner_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -60,7 +57,7 @@ class Admin::ProjectsController < ApplicationController
|
||||||
redirect_to admin_projects_url, notice: 'Project was successfully deleted.'
|
redirect_to admin_projects_url, notice: 'Project was successfully deleted.'
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def admin_project
|
def admin_project
|
||||||
@admin_project = Project.find_by_code(params[:id])
|
@admin_project = Project.find_by_code(params[:id])
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
class Admin::ResqueController < ApplicationController
|
class Admin::ResqueController < AdminController
|
||||||
layout 'admin'
|
|
||||||
def show
|
def show
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
class Admin::TeamMembersController < ApplicationController
|
class Admin::TeamMembersController < AdminController
|
||||||
layout "admin"
|
|
||||||
before_filter :authenticate_user!
|
|
||||||
before_filter :authenticate_admin!
|
|
||||||
|
|
||||||
def edit
|
def edit
|
||||||
@admin_team_member = UsersProject.find(params[:id])
|
@admin_team_member = UsersProject.find(params[:id])
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
class Admin::UsersController < ApplicationController
|
class Admin::UsersController < AdminController
|
||||||
layout "admin"
|
|
||||||
before_filter :authenticate_user!
|
|
||||||
before_filter :authenticate_admin!
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@admin_users = User.scoped
|
@admin_users = User.scoped
|
||||||
@admin_users = @admin_users.filter(params[:filter])
|
@admin_users = @admin_users.filter(params[:filter])
|
||||||
|
@ -24,7 +20,7 @@ class Admin::UsersController < ApplicationController
|
||||||
@admin_user = User.find(params[:id])
|
@admin_user = User.find(params[:id])
|
||||||
|
|
||||||
UsersProject.user_bulk_import(
|
UsersProject.user_bulk_import(
|
||||||
@admin_user,
|
@admin_user,
|
||||||
params[:project_ids],
|
params[:project_ids],
|
||||||
params[:project_access]
|
params[:project_access]
|
||||||
)
|
)
|
||||||
|
@ -41,22 +37,22 @@ class Admin::UsersController < ApplicationController
|
||||||
@admin_user = User.find(params[:id])
|
@admin_user = User.find(params[:id])
|
||||||
end
|
end
|
||||||
|
|
||||||
def block
|
def block
|
||||||
@admin_user = User.find(params[:id])
|
@admin_user = User.find(params[:id])
|
||||||
|
|
||||||
if @admin_user.block
|
if @admin_user.block
|
||||||
redirect_to :back, alert: "Successfully blocked"
|
redirect_to :back, alert: "Successfully blocked"
|
||||||
else
|
else
|
||||||
redirect_to :back, alert: "Error occured. User was not blocked"
|
redirect_to :back, alert: "Error occured. User was not blocked"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def unblock
|
def unblock
|
||||||
@admin_user = User.find(params[:id])
|
@admin_user = User.find(params[:id])
|
||||||
|
|
||||||
if @admin_user.update_attribute(:blocked, false)
|
if @admin_user.update_attribute(:blocked, false)
|
||||||
redirect_to :back, alert: "Successfully unblocked"
|
redirect_to :back, alert: "Successfully unblocked"
|
||||||
else
|
else
|
||||||
redirect_to :back, alert: "Error occured. User was not unblocked"
|
redirect_to :back, alert: "Error occured. User was not unblocked"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
11
app/controllers/admin_controller.rb
Normal file
11
app/controllers/admin_controller.rb
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# Provides a base class for Admin controllers to subclass
|
||||||
|
#
|
||||||
|
# Automatically sets the layout and ensures an administrator is logged in
|
||||||
|
class AdminController < ApplicationController
|
||||||
|
layout 'admin'
|
||||||
|
before_filter :authenticate_admin!
|
||||||
|
|
||||||
|
def authenticate_admin!
|
||||||
|
return render_404 unless current_user.is_admin?
|
||||||
|
end
|
||||||
|
end
|
|
@ -84,10 +84,6 @@ class ApplicationController < ActionController::Base
|
||||||
abilities << Ability
|
abilities << Ability
|
||||||
end
|
end
|
||||||
|
|
||||||
def authenticate_admin!
|
|
||||||
return render_404 unless current_user.is_admin?
|
|
||||||
end
|
|
||||||
|
|
||||||
def authorize_project!(action)
|
def authorize_project!(action)
|
||||||
return access_denied! unless can?(current_user, action, project)
|
return access_denied! unless can?(current_user, action, project)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue