def auth_destroy_user(m, params)
@destroy_q = [] unless defined?(@destroy_q)
buname = params[:name]
return m.reply(_("You can't destroy %{user}") % {:user => buname}) if
["everyone", "owner"].include?(buname)
mod = params[:modifier].to_sym rescue nil
buser_array = @bot.auth.save_array
buser_hash = buser_array.inject({}) { |h, u|
h[u[:username]] = u
h
}
return m.reply(_("no such botuser %{user}") % {:user=>buname}) unless
buser_hash.keys.include?(buname)
case mod
when :cancel
if @destroy_q.include?(buname)
@destroy_q.delete(buname)
m.reply(_("%{user} removed from the destruction queue") % {:user=>buname})
else
m.reply(_("%{user} was not queued for destruction") % {:user=>buname})
end
return
when nil
if @destroy_q.include?(buname)
return m.reply(_("%{user} already queued for destruction, use %{highlight}user confirm destroy %{user}%{highlight} to destroy it") % {:user=>buname, :highlight=>Bold})
else
@destroy_q << buname
return m.reply(_("%{user} queued for destruction, use %{highlight}user confirm destroy %{user}%{highlight} to destroy it") % {:user=>buname, :highlight=>Bold})
end
when :confirm
begin
return m.reply(_("%{user} is not queued for destruction yet") %
{:user=>buname}) unless @destroy_q.include?(buname)
buser_array.delete_if { |u|
u[:username] == buname
}
@destroy_q.delete(buname)
@bot.auth.load_array(buser_array, true)
@bot.auth.set_changed
rescue => e
return m.reply(_("failed: %{exception}") % {:exception => e})
end
return m.reply(_("botuser %{user} destroyed") % {:user => buname})
end
end