Skip to content

Commit

Permalink
Fix strings escaping in tree-view for mail
Browse files Browse the repository at this point in the history
  • Loading branch information
Ilia Rostovtsev committed May 12, 2018
1 parent a7014ec commit b2eef79
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 16 deletions.
6 changes: 3 additions & 3 deletions extensions/mail/folders.cgi
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ foreach my $folder (@folders_data) {
my ($fid) = $id =~ m#([^/]+)$#;
my ($parent, $child) = $fid =~ m|^ (.+) \. ([^\.]+) \z|x;
my $name = $folder->{'name'};
my $key = folders_escape_key($id);
my $title = folders_title_unseen(html_escape($child ? $child : $name), $unread);
my $active = (folders_escape_key($in{'key'}) eq $key ? 1 : 0);
my $key = folders_key_escape($id);
my $title = folders_title_escape(folders_title_unseen(html_escape($child ? $child : $name), $unread));
my $active = (folders_key_escape($in{'key'}) eq $key ? 1 : 0);
my $data = $temporary{$fid} = { key => $key,
title => $title,
active => $active,
Expand Down
13 changes: 11 additions & 2 deletions extensions/mail/mail-lib.pm
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,18 @@ sub get_json
}
}

sub folders_escape_key
sub folders_key_escape
{
return quote_escape(replace(' ', '_', $_[0]));
my ($str) = @_;
$str =~ s/%26/&/g;
return replace(' ', '_', $str);
}

sub folders_title_escape
{
my ($str) = @_;
$str =~ s/\\"/"/g;
return $str;
}

sub folders_title_unseen
Expand Down
2 changes: 1 addition & 1 deletion extensions/mail/mail.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion extensions/mail/mail.src.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ const mail = (function() {

// Get folders data
function get(key) {
key = key ? ('?key=' + key) : String();
key = key ? ('?key=' + key.replace(/&/g, '%26')) : String();

$.post(_g.path.extensions + "/mail/folders.cgi" + key + "", function(source) {
if (!!key) {
Expand Down
2 changes: 1 addition & 1 deletion theme.info
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
desc=Authentic Theme
longdesc=Webmin/Usermin/Virtualmin/Cloudmin theme based on Bootstrap and Font Awesome (https://github.com/qooob/authentic-theme)
version=19.17
mversion=2
mversion=3
depends=1.880 1.740
webmin=1
usermin=1
16 changes: 8 additions & 8 deletions unauthenticated/js/bundle.min.js

Large diffs are not rendered by default.

0 comments on commit b2eef79

Please sign in to comment.