Manage publicities
This commit is contained in:
@@ -1,5 +1,15 @@
|
||||
module Admin
|
||||
class ApplicationController < ::ApplicationController
|
||||
http_basic_authenticate_with name: 'admin', password: ENV['ADMIN_PASSWORD'] unless Rails.env.development?
|
||||
before_action :authenticate_supporter!
|
||||
before_action :authenticate_admin!
|
||||
|
||||
def authenticate_admin!
|
||||
return true if current_supporter.admin?
|
||||
head(:forbidden)
|
||||
end
|
||||
|
||||
def admin_area
|
||||
true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
module Admin
|
||||
class PublicitiesController < Admin::ApplicationController
|
||||
def index
|
||||
@pending = Supporter.where('publicity.state' => :pending).asc(:created_at)
|
||||
@active = Supporter.where('publicity.state' => :approved).asc(:created_at)
|
||||
end
|
||||
|
||||
def edit
|
||||
@publicity = Supporter.find(params[:id]).publicity
|
||||
end
|
||||
|
||||
def update
|
||||
@publicity = Supporter.find(params[:id]).publicity
|
||||
return redirect_to(admin_publicities_path) if @publicity.update_attributes(publicity_params)
|
||||
render :edit
|
||||
end
|
||||
|
||||
def destroy
|
||||
current_supporter.publicity&.destroy
|
||||
redirect_to(admin_publicities_path)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def publicity_params
|
||||
params.require(:publicity).permit(:organisation, :statement, :avatar, :state)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -29,6 +29,10 @@ class ApplicationController < ActionController::Base
|
||||
options.merge locale: I18n.locale
|
||||
end
|
||||
|
||||
def admin_area
|
||||
false
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def configure_permitted_parameters
|
||||
|
||||
Reference in New Issue
Block a user