use Digest::MD5 qw(md5_hex);
use IO::File;
use Time::HiRes qw(gettimeofday);
+use List::MoreUtils qw(uniq);
use SL::Auth::DB;
use SL::Auth::LDAP;
my $login = shift;
my $dbh = $self->dbconnect();
- my $query = qq|SELECT cfg.cfg_key, cfg.cfg_value
+ my $query = qq|SELECT u.id, u.login, cfg.cfg_key, cfg.cfg_value
FROM auth.user_config cfg
LEFT JOIN auth."user" u ON (cfg.user_id = u.id)
WHERE (u.login = ?)|;
while (my $ref = $sth->fetchrow_hashref()) {
$user_data{$ref->{cfg_key}} = $ref->{cfg_value};
- $user_data{login} = $login;
+ @user_data{qw(id login)} = @{$ref}{qw(id login)};
}
$sth->finish();
sub _create_session_id {
$main::lxdebug->enter_sub();
- my @secs = gettimeofday();
- srand $secs[1] + $$;
-
my @data;
map { push @data, int(rand() * 255); } (1..32);
$sth = prepare_query($form, $dbh, $query);
foreach $group (values %{$groups}) {
- $group->{members} = [];
+ my @members;
do_statement($form, $sth, $query, $group->{id});
while ($row = $sth->fetchrow_hashref()) {
- push @{$group->{members}}, $row->{user_id};
+ push @members, $row->{user_id};
}
+ $group->{members} = [ uniq @members ];
}
$sth->finish();
$query = qq|INSERT INTO auth.user_group (user_id, group_id) VALUES (?, ?)|;
$sth = prepare_query($form, $dbh, $query);
- foreach my $user_id (@{ $group->{members} }) {
+ foreach my $user_id (uniq @{ $group->{members} }) {
do_statement($form, $sth, $query, $user_id, $group->{id});
}
$sth->finish();