Skip to content

Commit 9607c54

Browse files
sanitize html and fix issues.
1 parent 0fa7ce4 commit 9607c54

File tree

101 files changed

+371
-358
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+371
-358
lines changed

packages/Webkul/Admin/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"@vee-validate/rules": "^4.9.1",
1919
"@vitejs/plugin-vue": "^4.2.3",
2020
"chartjs-chart-funnel": "^4.2.1",
21+
"dompurify": "^3.1.7",
2122
"flatpickr": "^4.6.13",
2223
"mitt": "^3.0.1",
2324
"vee-validate": "^4.9.1",

packages/Webkul/Admin/src/DataGrids/Mail/EmailDataGrid.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,11 @@ public function prepareColumns(): void
6363
'searchable' => false,
6464
'filterable' => false,
6565
'sortable' => false,
66-
'closure' => fn ($row) => $row->attachments ? '<i class="icon-attachment text-2xl"></i>' : '',
66+
'closure' => function ($row) {
67+
$emails = app(EmailRepository::class)->find($row->id)->emails()->withCount('attachments')->get();
68+
69+
return $emails->sum('attachments_count');
70+
},
6771
]);
6872

6973
$this->addColumn([

packages/Webkul/Admin/src/Resources/assets/js/app.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,14 @@ import VueCal from "./plugins/vue-cal";
118118
VueCal,
119119
].forEach((plugin) => app.use(plugin));
120120

121-
122121
/**
123122
* Global directives.
124123
*/
125124
import Debounce from "./directives/debounce";
125+
import DOMPurify from "./directives/dompurify";
126126

127127
app.directive("debounce", Debounce);
128+
app.directive("safe-html", DOMPurify);
129+
130+
export default app;
128131

129-
export default app;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import DOMPurify from 'dompurify';
2+
3+
export default {
4+
beforeMount(el, binding) {
5+
el.innerHTML = DOMPurify.sanitize(binding.value);
6+
},
7+
updated(el, binding) {
8+
el.innerHTML = DOMPurify.sanitize(binding.value);
9+
}
10+
};

packages/Webkul/Admin/src/Resources/views/components/activities/index.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ class="dark:text-white"
189189
<p
190190
class="dark:text-white"
191191
v-if="activity.comment"
192-
v-html="activity.comment"
192+
v-safe-html="activity.comment"
193193
></p>
194194

195195
{!! view_render_event('admin.components.activities.content.activity.item.description.after') !!}

packages/Webkul/Admin/src/Resources/views/mail/index.blade.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,9 @@ class="icon-checkbox-outline peer-checked:icon-checkbox-select cursor-pointer ro
136136
<!-- Content -->
137137
<div class="flex-frow flex items-center gap-2">
138138
<!-- Attachments -->
139-
<p v-html="record.attachments"></p>
139+
<p v-if="record.attachments > 0">
140+
<i class="icon-attachment text-2xl"></i>
141+
</p>
140142
141143
<!-- Tags -->
142144
<span
@@ -155,8 +157,8 @@ class="flex items-center gap-1 rounded-md bg-rose-100 px-3 py-1.5 text-xs font-m
155157
156158
<!-- Reply(Content) -->
157159
<p
158-
class="!font-normal"
159-
v-html="truncatedReply(record.reply)"
160+
class="max-w-[600px] truncate !font-normal"
161+
v-text="record.reply"
160162
></p>
161163
</div>
162164

packages/Webkul/Admin/src/Resources/views/mail/view.blade.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
@lang('admin::app.mail.view.title')
3434
</div>
3535

36-
<span class="label-active">{{ request('route') }}</span>
36+
<span class="label-active">{{ ucfirst(request('route')) }}</span>
3737

3838
{!! view_render_event('admin.mail.view.tags.before', ['email' => $email]) !!}
3939

@@ -243,9 +243,9 @@ class="flex cursor-pointer items-center gap-2"
243243
{!! view_render_event('admin.mail.view.mail_body.before', ['email' => $email]) !!}
244244
245245
<!-- Mail Body -->
246-
<div
247-
v-html="email.reply"
246+
<div
248247
class="dark:text-gray-300"
248+
v-safe-html="email.reply"
249249
></div>
250250
251251
{!! view_render_event('admin.mail.view.mail_body.after', ['email' => $email]) !!}

public/admin/build/assets/app-116eea9b.js

Lines changed: 0 additions & 77 deletions
This file was deleted.

public/admin/build/assets/app-3d4597c7.css

Lines changed: 0 additions & 1 deletion
This file was deleted.

public/admin/build/assets/app-75c48030.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)