24 lines
563 B
Ruby
24 lines
563 B
Ruby
|
module IssuableActions
|
||
|
extend ActiveSupport::Concern
|
||
|
|
||
|
included do
|
||
|
before_action :authorize_destroy_issuable!, only: :destroy
|
||
|
end
|
||
|
|
||
|
def destroy
|
||
|
issuable.destroy
|
||
|
|
||
|
name = issuable.class.name.titleize.downcase
|
||
|
flash[:notice] = "The #{name} was successfully deleted."
|
||
|
redirect_to polymorphic_path([@project.namespace.becomes(Namespace), @project, issuable.class])
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def authorize_destroy_issuable!
|
||
|
unless current_user.can?(:"destroy_#{issuable.to_ability_name}", issuable)
|
||
|
return access_denied!
|
||
|
end
|
||
|
end
|
||
|
end
|