mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 11:37:58 +00:00
chore: Increase custom filter limit from 50 to 1000 per user (#12603)
# Pull Request Template ## Description This PR increases the custom filter limit from 50 to 1000 per user ## Type of change - [x] Bug fix (non-breaking change which fixes an issue) ## How Has This Been Tested? ### Screenshot <img width="1264" height="71" alt="image" src="https://github.com/user-attachments/assets/e12667bb-147c-4115-b8a8-9113fca471db" /> ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [ ] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules
This commit is contained in:
@@ -17,7 +17,6 @@
|
|||||||
# index_custom_filters_on_user_id (user_id)
|
# index_custom_filters_on_user_id (user_id)
|
||||||
#
|
#
|
||||||
class CustomFilter < ApplicationRecord
|
class CustomFilter < ApplicationRecord
|
||||||
MAX_FILTER_PER_USER = 50
|
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
belongs_to :account
|
belongs_to :account
|
||||||
|
|
||||||
@@ -25,7 +24,7 @@ class CustomFilter < ApplicationRecord
|
|||||||
validate :validate_number_of_filters
|
validate :validate_number_of_filters
|
||||||
|
|
||||||
def validate_number_of_filters
|
def validate_number_of_filters
|
||||||
return true if account.custom_filters.where(user_id: user_id).size < MAX_FILTER_PER_USER
|
return true if account.custom_filters.where(user_id: user_id).size < Limits::MAX_CUSTOM_FILTERS_PER_USER
|
||||||
|
|
||||||
errors.add :account_id, I18n.t('errors.custom_filters.number_of_records')
|
errors.add :account_id, I18n.t('errors.custom_filters.number_of_records')
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ en:
|
|||||||
validations:
|
validations:
|
||||||
name: should not start or end with symbols, and it should not have < > / \ @ characters.
|
name: should not start or end with symbols, and it should not have < > / \ @ characters.
|
||||||
custom_filters:
|
custom_filters:
|
||||||
number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
|
number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
|
||||||
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
|
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
|
||||||
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
|
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
|
||||||
invalid_query_operator: Query operator must be either "AND" or "OR".
|
invalid_query_operator: Query operator must be either "AND" or "OR".
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ module Limits
|
|||||||
GREETING_MESSAGE_MAX_LENGTH = 10_000
|
GREETING_MESSAGE_MAX_LENGTH = 10_000
|
||||||
CATEGORIES_PER_PAGE = 1000
|
CATEGORIES_PER_PAGE = 1000
|
||||||
AUTO_ASSIGNMENT_BULK_LIMIT = 100
|
AUTO_ASSIGNMENT_BULK_LIMIT = 100
|
||||||
|
MAX_CUSTOM_FILTERS_PER_USER = 1000
|
||||||
|
|
||||||
def self.conversation_message_per_minute_limit
|
def self.conversation_message_per_minute_limit
|
||||||
ENV.fetch('CONVERSATION_MESSAGE_PER_MINUTE_LIMIT', '200').to_i
|
ENV.fetch('CONVERSATION_MESSAGE_PER_MINUTE_LIMIT', '200').to_i
|
||||||
|
|||||||
@@ -93,9 +93,9 @@ RSpec.describe 'Custom Filters API', type: :request do
|
|||||||
expect(json_response['name']).to eq 'vip-customers'
|
expect(json_response['name']).to eq 'vip-customers'
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'gives the error for 51st record' do
|
it 'gives the error for 1001st record' do
|
||||||
CustomFilter.delete_all
|
CustomFilter.delete_all
|
||||||
CustomFilter::MAX_FILTER_PER_USER.times do
|
Limits::MAX_CUSTOM_FILTERS_PER_USER.times do
|
||||||
create(:custom_filter, user: user, account: account)
|
create(:custom_filter, user: user, account: account)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ RSpec.describe 'Custom Filters API', type: :request do
|
|||||||
expect(response).to have_http_status(:unprocessable_entity)
|
expect(response).to have_http_status(:unprocessable_entity)
|
||||||
json_response = response.parsed_body
|
json_response = response.parsed_body
|
||||||
expect(json_response['message']).to include(
|
expect(json_response['message']).to include(
|
||||||
'Account Limit reached. The maximum number of allowed custom filters for a user per account is 50.'
|
'Account Limit reached. The maximum number of allowed custom filters for a user per account is 1000.'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user