fixes #131: Unable to delete pools
This commit is contained in:
@@ -2,6 +2,7 @@ class PoolsController < ApplicationController
|
||||
respond_to :html, :xml, :json, :js
|
||||
before_filter :member_only, :except => [:index, :show]
|
||||
before_filter :moderator_only, :only => [:destroy]
|
||||
rescue_from User::PrivilegeError, :with => "static/access_denied"
|
||||
|
||||
def new
|
||||
@pool = Pool.new
|
||||
@@ -45,6 +46,9 @@ class PoolsController < ApplicationController
|
||||
|
||||
def destroy
|
||||
@pool = Pool.find(params[:id])
|
||||
if !@pool.deletable_by?(CurrentUser.user)
|
||||
raise User::PrivilegeError
|
||||
end
|
||||
@pool.destroy
|
||||
respond_with(@pool, :notice => "Pool deleted")
|
||||
end
|
||||
|
||||
@@ -10,6 +10,7 @@ class Pool < ActiveRecord::Base
|
||||
before_validation :normalize_post_ids
|
||||
before_validation :initialize_creator, :on => :create
|
||||
after_save :create_version
|
||||
before_destroy :create_mod_action_for_destroy
|
||||
attr_accessible :name, :description, :post_ids, :post_id_array, :is_active, :post_count
|
||||
|
||||
def self.name_to_id(name)
|
||||
@@ -66,6 +67,14 @@ class Pool < ActiveRecord::Base
|
||||
post_ids =~ /(?:\A| )#{post_id}(?:\Z| )/
|
||||
end
|
||||
|
||||
def deletable_by?(user)
|
||||
user.is_janitor?
|
||||
end
|
||||
|
||||
def create_mod_action_for_destroy
|
||||
ModAction.create(:description => "deleted pool ##{id} name=#{name} post_ids=#{post_ids}")
|
||||
end
|
||||
|
||||
def add!(post)
|
||||
return if contains?(post.id)
|
||||
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
<li><%= link_to "Show", pool_path(@pool) %></li>
|
||||
<li><%= link_to "Posts", posts_path(:tags => "pool:#{@pool.id}") %></li>
|
||||
<li><%= link_to "Edit", edit_pool_path(@pool) %></li>
|
||||
<% if @pool.deletable_by?(CurrentUser.user) %>
|
||||
<li><%= link_to "Delete", pool_path(@pool), :method => :delete, :confirm => "Are you sure you want to delete this pool?", :remote => true %></li>
|
||||
<% end %>
|
||||
<li><%= link_to "Order", edit_pool_order_path(@pool) %></li>
|
||||
<% end %>
|
||||
</menu>
|
||||
|
||||
1
app/views/pools/destroy.js.erb
Normal file
1
app/views/pools/destroy.js.erb
Normal file
@@ -0,0 +1 @@
|
||||
Danbooru.notice("Pool deleted");
|
||||
Reference in New Issue
Block a user