Merge branch 'release/4.0.1'

This commit is contained in:
Sojan
2025-01-17 01:13:27 +05:30
9 changed files with 50 additions and 40 deletions

View File

@@ -2,13 +2,13 @@ Chatwoot is looking forward to working with security researchers worldwide to ke
## Reporting a Vulnerability ## Reporting a Vulnerability
We use [huntr.dev](https://huntr.dev/) for security issues that affect our project. If you believe you have found a vulnerability, please disclose it via this [form](https://huntr.dev/bounties/disclose). This will enable us to review the vulnerability, fix it promptly, and reward you for your efforts. We use Github to track the security issues that affect our project. If you believe you have found a vulnerability, please disclose it via this [form](https://github.com/chatwoot/chatwoot/security/advisories/new). This will enable us to review the vulnerability, fix it promptly, and reward you for your efforts.
If you have any questions about the process, contact security@chatwoot.com. If you have any questions about the process, contact security@chatwoot.com.
Please try your best to describe a clear and realistic impact for your report, and please don't open any public issues on GitHub or social media; we're doing our best to respond through Huntr as quickly as possible. Please try your best to describe a clear and realistic impact for your report, and please don't open any public issues on GitHub or social media; we're doing our best to respond through Github as quickly as possible.
> Note: Please use the email for questions related to the process. Disclosures should be done via [huntr.dev](https://huntr.dev/) > Note: Please use the email for questions related to the process. Disclosures should be done via [Github](https://github.com/chatwoot/chatwoot/security/advisories/new)
## Supported versions ## Supported versions
| Version | Supported | | Version | Supported |
@@ -48,7 +48,7 @@ We consider the following out of scope, though there may be exceptions.
- Brute force attacks - Brute force attacks
- DNSSEC - DNSSEC
If you are unsure about the scope, please create a [report](https://huntr.dev/repos/chatwoot/chatwoot/). If you are unsure about the scope, please create a [report](https://github.com/chatwoot/chatwoot/security/advisories/new).
## Thanks ## Thanks

View File

@@ -18,12 +18,12 @@ const varaintBaseMap = {
[MESSAGE_VARIANTS.AGENT]: 'bg-n-solid-blue text-n-slate-12', [MESSAGE_VARIANTS.AGENT]: 'bg-n-solid-blue text-n-slate-12',
[MESSAGE_VARIANTS.PRIVATE]: [MESSAGE_VARIANTS.PRIVATE]:
'bg-n-solid-amber text-n-amber-12 [&_.prosemirror-mention-node]:font-semibold', 'bg-n-solid-amber text-n-amber-12 [&_.prosemirror-mention-node]:font-semibold',
[MESSAGE_VARIANTS.USER]: 'bg-n-gray-3 text-n-slate-12', [MESSAGE_VARIANTS.USER]: 'bg-n-slate-4 text-n-slate-12',
[MESSAGE_VARIANTS.ACTIVITY]: 'bg-n-alpha-1 text-n-slate-11 text-sm', [MESSAGE_VARIANTS.ACTIVITY]: 'bg-n-alpha-1 text-n-slate-11 text-sm',
[MESSAGE_VARIANTS.BOT]: 'bg-n-solid-iris text-n-slate-12', [MESSAGE_VARIANTS.BOT]: 'bg-n-solid-iris text-n-slate-12',
[MESSAGE_VARIANTS.TEMPLATE]: 'bg-n-solid-iris text-n-slate-12', [MESSAGE_VARIANTS.TEMPLATE]: 'bg-n-solid-iris text-n-slate-12',
[MESSAGE_VARIANTS.ERROR]: 'bg-n-ruby-4 text-n-ruby-12', [MESSAGE_VARIANTS.ERROR]: 'bg-n-ruby-4 text-n-ruby-12',
[MESSAGE_VARIANTS.EMAIL]: 'bg-n-gray-3 w-full', [MESSAGE_VARIANTS.EMAIL]: 'w-full',
[MESSAGE_VARIANTS.UNSUPPORTED]: [MESSAGE_VARIANTS.UNSUPPORTED]:
'bg-n-solid-amber/70 border border-dashed border-n-amber-12 text-n-amber-12', 'bg-n-solid-amber/70 border border-dashed border-n-amber-12 text-n-amber-12',
}; };

View File

@@ -55,7 +55,7 @@ const showMeta = computed(() => {
<template> <template>
<section <section
v-show="showMeta" v-show="showMeta"
class="space-y-1 rtl:pl-9 ltr:pr-9 border-b border-n-strong text-sm break-words" class="space-y-1 rtl:pl-9 ltr:pr-9 text-sm break-words"
:class="hasError ? 'text-n-ruby-11' : 'text-n-slate-11'" :class="hasError ? 'text-n-ruby-11' : 'text-n-slate-11'"
> >
<template v-if="showMeta"> <template v-if="showMeta">

View File

@@ -27,6 +27,7 @@ onMounted(() => {
const isOutgoing = computed(() => { const isOutgoing = computed(() => {
return messageType.value === MESSAGE_TYPES.OUTGOING; return messageType.value === MESSAGE_TYPES.OUTGOING;
}); });
const isIncoming = computed(() => !isOutgoing.value);
const fullHTML = computed(() => { const fullHTML = computed(() => {
return contentAttributes?.value?.email?.htmlContent?.full ?? content.value; return contentAttributes?.value?.email?.htmlContent?.full ?? content.value;
@@ -48,8 +49,21 @@ const textToShow = computed(() => {
</script> </script>
<template> <template>
<BaseBubble class="w-full" data-bubble-name="email"> <BaseBubble
<EmailMeta class="p-3" /> class="w-full"
:class="{
'bg-n-slate-4': isIncoming,
'bg-n-solid-blue': isOutgoing,
}"
data-bubble-name="email"
>
<EmailMeta
class="p-3"
:class="{
'border-b border-n-strong': isIncoming,
'border-b border-n-slate-8/20': isOutgoing,
}"
/>
<section ref="contentContainer" class="p-3"> <section ref="contentContainer" class="p-3">
<div <div
:class="{ :class="{

View File

@@ -75,7 +75,7 @@ onMounted(() => {
@mousedown="handleMouseDown" @mousedown="handleMouseDown"
> >
<div <div
class="relative max-h-full overflow-auto bg-n-alpha-3 backdrop-blur-[100px] shadow-md modal-container rtl:text-right skip-context-menu" class="relative max-h-full overflow-auto bg-n-alpha-3 shadow-md modal-container rtl:text-right skip-context-menu"
:class="{ :class="{
'rounded-xl w-[37.5rem]': !fullWidth, 'rounded-xl w-[37.5rem]': !fullWidth,
'items-center rounded-none flex h-full justify-center w-full': 'items-center rounded-none flex h-full justify-center w-full':

View File

@@ -99,15 +99,11 @@ const onClickTabChange = index => {
:attribute-model="attributeModel" :attribute-model="attributeModel"
/> />
</template> </template>
<woot-modal <AddAttribute
v-if="showAddPopup" v-if="showAddPopup"
v-model:show="showAddPopup" v-model:show="showAddPopup"
:on-close="hideAddPopup" :on-close="hideAddPopup"
> :selected-attribute-model-tab="selectedTabIndex"
<AddAttribute />
:on-close="hideAddPopup"
:selected-attribute-model-tab="selectedTabIndex"
/>
</woot-modal>
</SettingsLayout> </SettingsLayout>
</template> </template>

View File

@@ -1,5 +1,5 @@
shared: &shared shared: &shared
version: '4.0.0' version: '4.0.1'
development: development:
<<: *shared <<: *shared

View File

@@ -8,27 +8,27 @@ internal_check_new_versions_job:
class: 'Internal::CheckNewVersionsJob' class: 'Internal::CheckNewVersionsJob'
queue: scheduled_jobs queue: scheduled_jobs
# # executed At every 5th minute.. # # executed At every 5th minute..
# trigger_scheduled_items_job: trigger_scheduled_items_job:
# cron: '*/5 * * * *' cron: '*/5 * * * *'
# class: 'TriggerScheduledItemsJob' class: 'TriggerScheduledItemsJob'
# queue: scheduled_jobs queue: scheduled_jobs
# # executed At every minute.. # executed At every minute..
# trigger_imap_email_inboxes_job: trigger_imap_email_inboxes_job:
# cron: '*/1 * * * *' cron: '*/1 * * * *'
# class: 'Inboxes::FetchImapEmailInboxesJob' class: 'Inboxes::FetchImapEmailInboxesJob'
# queue: scheduled_jobs queue: scheduled_jobs
# # executed daily at 2230 UTC # executed daily at 2230 UTC
# # which is our lowest traffic time # which is our lowest traffic time
# remove_stale_contact_inboxes_job.rb: remove_stale_contact_inboxes_job.rb:
# cron: '30 22 * * *' cron: '30 22 * * *'
# class: 'Internal::RemoveStaleContactInboxesJob' class: 'Internal::RemoveStaleContactInboxesJob'
# queue: scheduled_jobs queue: scheduled_jobs
# # executed daily at 2230 UTC # executed daily at 2230 UTC
# # which is our lowest traffic time # which is our lowest traffic time
# remove_stale_redis_keys_job.rb: remove_stale_redis_keys_job.rb:
# cron: '30 22 * * *' cron: '30 22 * * *'
# class: 'Internal::RemoveStaleRedisKeysJob' class: 'Internal::RemoveStaleRedisKeysJob'
# queue: scheduled_jobs queue: scheduled_jobs

View File

@@ -1,6 +1,6 @@
{ {
"name": "@chatwoot/chatwoot", "name": "@chatwoot/chatwoot",
"version": "4.0.0", "version": "4.0.1",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"eslint": "eslint app/**/*.{js,vue}", "eslint": "eslint app/**/*.{js,vue}",