fixes #131: Unable to delete pools

This commit is contained in:
albert
2011-10-15 22:36:43 -04:00
parent d957a1eba4
commit 91f71201fa
4 changed files with 17 additions and 0 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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>

View File

@@ -0,0 +1 @@
Danbooru.notice("Pool deleted");