Remove the `user.permissions` field and resolve the permissions directly from the accounts array in the user. This change ensures that the cache or previous values from the last active account don't affect the permissions. In this PR: - Remove user.permissions usage, replace it with getUserPermissions method. - Remove json.permissions from user.json.jbuilder
35 lines
1.4 KiB
Ruby
35 lines
1.4 KiB
Ruby
json.access_token resource.access_token.token
|
|
json.account_id resource.active_account_user&.account_id
|
|
json.available_name resource.available_name
|
|
json.avatar_url resource.avatar_url
|
|
json.confirmed resource.confirmed?
|
|
json.display_name resource.display_name
|
|
json.message_signature resource.message_signature
|
|
json.email resource.email
|
|
json.hmac_identifier resource.hmac_identifier if GlobalConfig.get('CHATWOOT_INBOX_HMAC_KEY')['CHATWOOT_INBOX_HMAC_KEY'].present?
|
|
json.id resource.id
|
|
json.inviter_id resource.active_account_user&.inviter_id
|
|
json.name resource.name
|
|
json.provider resource.provider
|
|
json.pubsub_token resource.pubsub_token
|
|
json.custom_attributes resource.custom_attributes if resource.custom_attributes.present?
|
|
json.role resource.active_account_user&.role
|
|
json.ui_settings resource.ui_settings
|
|
json.uid resource.uid
|
|
json.type resource.type
|
|
json.accounts do
|
|
json.array! resource.account_users do |account_user|
|
|
json.id account_user.account_id
|
|
json.name account_user.account.name
|
|
json.status account_user.account.status
|
|
json.active_at account_user.active_at
|
|
json.role account_user.role
|
|
json.permissions account_user.permissions
|
|
# the actual availability user has configured
|
|
json.availability account_user.availability
|
|
# availability derived from presence
|
|
json.availability_status account_user.availability_status
|
|
json.auto_offline account_user.auto_offline
|
|
end
|
|
end
|