feat: Add the ability for a super admin to define account limits (#3946)
Fixes: #3773
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
module Enterprise::Account
|
||||
def usage_limits
|
||||
{
|
||||
agents: get_limits(:agents),
|
||||
inboxes: get_limits(:inboxes)
|
||||
agents: get_limits(:agents).to_i,
|
||||
inboxes: get_limits(:inboxes).to_i
|
||||
}
|
||||
end
|
||||
|
||||
@@ -12,4 +12,21 @@ module Enterprise::Account
|
||||
config_name = "ACCOUNT_#{limit_name.to_s.upcase}_LIMIT"
|
||||
self[:limits][limit_name.to_s] || GlobalConfig.get(config_name)[config_name] || ChatwootApp.max_limit
|
||||
end
|
||||
|
||||
def validate_limit_keys
|
||||
errors.add(:limits, ': Invalid data') unless self[:limits].is_a? Hash
|
||||
self[:limits] = {} if self[:limits].blank?
|
||||
|
||||
limit_schema = {
|
||||
'type' => 'object',
|
||||
'properties' => {
|
||||
'inboxes' => { 'type': 'number' },
|
||||
'agents' => { 'type': 'number' }
|
||||
},
|
||||
'required' => [],
|
||||
'additionalProperties' => false
|
||||
}
|
||||
|
||||
errors.add(:limits, ': Invalid data') unless JSONSchemer.schema(limit_schema).valid?(self[:limits])
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user