use LockFile::Simple;
use Data::Dumper;
use DB_File;
+use Encode qw(encode decode);
use PVE::SafeSyslog;
use PVE::Tools qw(split_list);
my $status = $dbh->seq($key, $value, R_FIRST());
while ($status == 0) {
- $res->{$value} = $key;
+ $res->{$value} = PMG::Utils::try_decode_utf8($key);
$status = $dbh->seq($key, $value, R_NEXT());
}
while ($status == 0) {
my ($pmail, $account, $dn) = unpack('n/a* n/a* n/a*', $value);
$res->{$key} = {
- pmail => $pmail,
- account => $account,
- dn => $dn,
+ pmail => PMG::Utils::try_decode_utf8($pmail),
+ account => PMG::Utils::try_decode_utf8($account),
+ dn => PMG::Utils::try_decode_utf8($dn),
};
$status = $dbh->seq($key, $value, R_NEXT());
}
return undef if !$dbhmails || !$dbhusers;
- $mail = lc($mail);
+ $mail = encode('UTF-8', lc($mail));
my $res = [];
my ($pmail, $account, $dn) = unpack('n/a* n/a* n/a*', $rdata);
- push @$res, { primary => 1, email => $pmail };
+ push @$res, { primary => 1, email => PMG::Utils::try_decode_utf8($pmail) };
my $key = 0 ;
my $value = "" ;
while ($status == 0) {
if ($value == $cuid && $key ne $pmail) {
- push @$res, { primary => 0, email => $key };
+ push @$res, { primary => 0, email => PMG::Utils::try_decode_utf8($key) };
}
$status = $dbhmails->seq($key, $value, R_NEXT());
}
my $dbh = $self->{dbstat}->{mails}->{dbh};
return 0 if !$dbh;
- $mail = lc($mail);
+ $mail = encode('UTF-8', lc($mail));
my $res;
$dbh->get($mail, $res);
my $dbh = $self->{dbstat}->{accounts}->{dbh};
return 0 if !$dbh;
- $account = lc($account);
+ $account = encode('UTF-8', lc($account));
my $res;
$dbh->get($account, $res);
my $dbh = $self->{dbstat}->{groups}->{dbh};
return 0 if !$dbh;
+ $group = encode('UTF-8', $group);
+
my $res;
$dbh->get($group, $res);
return $res;
my $dbhaccounts = $self->{dbstat}->{accounts}->{dbh};
return 0 if !$dbhmails || !$dbhaccounts;
- $account = lc($account);
- $mail = lc($mail);
+ $account = encode('UTF-8', lc($account));
+ $mail = encode('UTF-8', lc($mail));
my $accid;
$dbhaccounts->get($account, $accid);
return 0 if !$dbhmails || !$dbhgroups || !$dbhmemberof;
- $mail = lc($mail);
+ $mail = encode('UTF-8', lc($mail));
my $cuid;
$dbhmails->get($mail, $cuid);
return 0 if !$cuid;
+ $group = encode('UTF-8', $group);
+
my $groupid;
$dbhgroups->get($group, $groupid);
return 0 if !$groupid;
return undef if !$dbhmails || !$dbhusers;
- $mail = lc($mail);
+ $mail = encode('UTF-8', lc($mail));
my $res = {};
use strict;
use warnings;
use DBI;
+use Encode qw(encode);
use PVE::Exception qw(raise_param_exc);
defined($value) || die "undefined value: ERROR";
+ my $decoded = PMG::Utils::try_decode_utf8($value);
+
my $obj;
- if ($value =~ m/^([^:]*):(.*)$/) {
+ if ($decoded =~ m/^([^:]*):(.*)$/) {
$obj = $class->new($2, $1, $ogroup);
- $obj->{digest} = Digest::SHA::sha1_hex($id, $2, $1, $ogroup);
+ $obj->{digest} = Digest::SHA::sha1_hex($id, encode('UTF-8', $2), encode('UTF-8', $1), $ogroup);
} else {
- $obj = $class->new($value, '', $ogroup);
+ $obj = $class->new($decoded, '', $ogroup);
$obj->{digest} = Digest::SHA::sha1_hex($id, $value, '#', $ogroup);
}
my $grp = $self->{ldapgroup};
my $profile = $self->{profile};
- my $confdata = "$profile:$grp";
+ my $confdata = encode('UTF-8', "$profile:$grp");
if (defined ($self->{id})) {
# update
use warnings;
use DBI;
use Digest::SHA;
+use Encode qw(encode);
use PVE::INotify;
my $class = ref($type) || $type;
defined($value) || die "undefined value: ERROR";
-
+
+ my $decoded = PMG::Utils::try_decode_utf8($value);
+
my $obj;
- if ($value =~ m/^([^:]*):(.*)$/) {
+ if ($decoded =~ m/^([^:]*):(.*)$/) {
$obj = $class->new($2, $1, $ogroup);
- $obj->{digest} = Digest::SHA::sha1_hex($id, $2, $1, $ogroup);
+ $obj->{digest} = Digest::SHA::sha1_hex($id, encode('UTF-8', $2), encode('UTF-8', $1), $ogroup);
} else {
- $obj = $class->new($value, '', $ogroup);
+ $obj = $class->new($decoded, '', $ogroup);
$obj->{digest} = Digest::SHA::sha1_hex ($id, $value, '#', $ogroup);
}
my $user = $self->{ldapuser};
my $profile = $self->{profile};
- my $confdata = "$profile:$user";
+ my $confdata = encode('UTF-8', "$profile:$user");
if (defined($self->{id})) {
# update