fix #11965: FriendMgr pagination and getUsersNotIn
This commit is contained in:
parent
ee80f8d011
commit
5f89a281e9
4 changed files with 49 additions and 7 deletions
|
|
@ -202,7 +202,7 @@ sub www_editFriends {
|
|||
my @manageableUsers = ();
|
||||
if ($groupName) {
|
||||
my $group = WebGUI::Group->find($session, $groupName);
|
||||
push @manageableUsers, @{ $group->getUsersNotIn($user->{_user}->{'friendsGroup'}, 'withoutExpired') };
|
||||
push @manageableUsers, @{ $group->getUsersNotIn($user->friends->getId, 'withoutExpired') };
|
||||
}
|
||||
else {
|
||||
my $groupIds = $session->setting->get('groupsToManageFriends');
|
||||
|
|
@ -210,7 +210,7 @@ sub www_editFriends {
|
|||
foreach my $groupId (@groupIds) {
|
||||
my $group = WebGUI::Group->new($session, $groupId);
|
||||
next GROUP unless $group->getId || $group->getId eq 'new';
|
||||
push @manageableUsers, @{ $group->getUsersNotIn($user->{_user}->{'friendsGroup'}, 'withoutExpired') };
|
||||
push @manageableUsers, @{ $group->getUsersNotIn($user->friends->getId, 'withoutExpired') };
|
||||
}
|
||||
@manageableUsers = uniq @manageableUsers;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -979,24 +979,33 @@ sub getUsersNotIn {
|
|||
if($groupId eq "") {
|
||||
return $self->getUsers($withoutExpired);
|
||||
}
|
||||
my $selfWhere;
|
||||
if ( $self->getId ne '2' ) {
|
||||
$selfWhere = "and groupId=" . $self->session->db->dbh->quote( $self->getId );
|
||||
}
|
||||
else {
|
||||
$selfWhere = 'and userId != ' . $self->session->db->dbh->quote( "1" );
|
||||
}
|
||||
|
||||
my $expireTime = 0;
|
||||
if ($withoutExpired) {
|
||||
$expireTime = time();
|
||||
}
|
||||
|
||||
my $sql = q{
|
||||
my $sql = qq{
|
||||
select
|
||||
userId
|
||||
from
|
||||
groupings
|
||||
users
|
||||
left join
|
||||
groupings using (userId)
|
||||
where
|
||||
expireDate > ?
|
||||
and groupId=?
|
||||
$selfWhere
|
||||
and userId not in (select userId from groupings where expireDate > ? and groupId=?)
|
||||
};
|
||||
|
||||
my @users = $self->session->db->buildArray($sql, [$expireTime,$self->getId,$expireTime,$groupId]);
|
||||
my @users = $self->session->db->buildArray($sql, [$expireTime,$expireTime,$groupId]);
|
||||
return \@users;
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue