mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 19:48:08 +00:00
feat: Add a feature flag for Audit Log UI (#7035)
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
This commit is contained in:
@@ -157,6 +157,7 @@ const settings = accountId => ({
|
|||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/settings/audit-log/list`),
|
toState: frontendURL(`accounts/${accountId}/settings/audit-log/list`),
|
||||||
toStateName: 'auditlogs_list',
|
toStateName: 'auditlogs_list',
|
||||||
|
featureFlag: FEATURE_FLAGS.AUDIT_LOGS,
|
||||||
beta: true,
|
beta: true,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -15,4 +15,5 @@ export const FEATURE_FLAGS = {
|
|||||||
REPORTS: 'reports',
|
REPORTS: 'reports',
|
||||||
TEAM_MANAGEMENT: 'team_management',
|
TEAM_MANAGEMENT: 'team_management',
|
||||||
VOICE_RECORDER: 'voice_recorder',
|
VOICE_RECORDER: 'voice_recorder',
|
||||||
|
AUDIT_LOGS: 'audit_logs',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -53,3 +53,5 @@
|
|||||||
enabled: false
|
enabled: false
|
||||||
- name: custom_reply_domain
|
- name: custom_reply_domain
|
||||||
enabled: false
|
enabled: false
|
||||||
|
- name: audit_logs
|
||||||
|
enabled: false
|
||||||
|
|||||||
@@ -21,6 +21,14 @@ class Api::V1::Accounts::AuditLogsController < Api::V1::Accounts::BaseController
|
|||||||
private
|
private
|
||||||
|
|
||||||
def fetch_audit
|
def fetch_audit
|
||||||
@audit_logs = Current.account.associated_audits.order(created_at: :desc)
|
@audit_logs = if audit_logs_enabled?
|
||||||
|
Current.account.associated_audits.order(created_at: :desc)
|
||||||
|
else
|
||||||
|
Current.account.associated_audits.none
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def audit_logs_enabled?
|
||||||
|
Current.account.feature_enabled?(:audit_logs)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -27,7 +27,20 @@ RSpec.describe 'Enterprise Audit API', type: :request do
|
|||||||
|
|
||||||
# check for response in parse
|
# check for response in parse
|
||||||
context 'when it is an authenticated admin user' do
|
context 'when it is an authenticated admin user' do
|
||||||
|
it 'returns empty array if feature is not enabled' do
|
||||||
|
get "/api/v1/accounts/#{account.id}/audit_logs",
|
||||||
|
headers: admin.create_new_auth_token,
|
||||||
|
as: :json
|
||||||
|
|
||||||
|
expect(response).to have_http_status(:success)
|
||||||
|
json_response = JSON.parse(response.body)
|
||||||
|
expect(json_response['audit_logs']).to eql([])
|
||||||
|
end
|
||||||
|
|
||||||
it 'fetches audit logs associated with the account' do
|
it 'fetches audit logs associated with the account' do
|
||||||
|
account.enable_features(:audit_logs)
|
||||||
|
account.save!
|
||||||
|
|
||||||
get "/api/v1/accounts/#{account.id}/audit_logs",
|
get "/api/v1/accounts/#{account.id}/audit_logs",
|
||||||
headers: admin.create_new_auth_token,
|
headers: admin.create_new_auth_token,
|
||||||
as: :json
|
as: :json
|
||||||
|
|||||||
Reference in New Issue
Block a user