  def move_multi
    Log.add_info(request, params.inspect)

    return unless request.post?

    if params[:check_item].nil? or params[:thetisBoxSelKeeper].nil?
      list
      render(:action => 'list')
      return
    end

    is_admin = @login_user.admin?(User::AUTH_ITEM)

    folder_id = params[:thetisBoxSelKeeper].split(':').last
    SqlHelper.validate_token([folder_id])

    unless Folder.check_user_auth(folder_id, @login_user, 'w', true)
      flash[:notice] = 'ERROR:' + t('folder.need_auth_to_write_in')

      list
      render(:action => 'list')
      return
    end

    count = 0
    params[:check_item].each do |item_id, value|
      if value == '1'

        begin
          item = Item.find(item_id)
          next if !is_admin and item.user_id != @login_user.id

          item.update_attribute(:folder_id, folder_id)

        rescue => evar
          item = nil
          Log.add_error(request, evar)
        end

        count += 1
      end
    end
    flash[:notice] = t('item.moved', :count => count)

    list
    render(:action => 'list')
  end
The software constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component.