|
<?php |
|
|
|
namespace Kanboard\Model; |
|
|
|
use Kanboard\Core\Base; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class GroupMemberModel extends Base |
|
{ |
|
|
|
|
|
|
|
|
|
|
|
const TABLE = 'group_has_users'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getQuery($group_id) |
|
{ |
|
return $this->db->table(self::TABLE) |
|
->join(UserModel::TABLE, 'id', 'user_id') |
|
->eq('group_id', $group_id); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getMembers($group_id) |
|
{ |
|
return $this->getQuery($group_id)->findAll(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getNotMembers($group_id) |
|
{ |
|
$subquery = $this->db->table(self::TABLE) |
|
->columns('user_id') |
|
->eq('group_id', $group_id); |
|
|
|
return $this->db->table(UserModel::TABLE) |
|
->notInSubquery('id', $subquery) |
|
->eq('is_active', 1) |
|
->findAll(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function addUser($group_id, $user_id) |
|
{ |
|
return $this->db->table(self::TABLE)->insert(array( |
|
'group_id' => $group_id, |
|
'user_id' => $user_id, |
|
)); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function removeUser($group_id, $user_id) |
|
{ |
|
return $this->db->table(self::TABLE) |
|
->eq('group_id', $group_id) |
|
->eq('user_id', $user_id) |
|
->remove(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function isMember($group_id, $user_id) |
|
{ |
|
return $this->db->table(self::TABLE) |
|
->eq('group_id', $group_id) |
|
->eq('user_id', $user_id) |
|
->exists(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getGroups($user_id) |
|
{ |
|
return $this->db->table(self::TABLE) |
|
->columns(GroupModel::TABLE.'.id', GroupModel::TABLE.'.external_id', GroupModel::TABLE.'.name') |
|
->join(GroupModel::TABLE, 'id', 'group_id') |
|
->eq(self::TABLE.'.user_id', $user_id) |
|
->asc(GroupModel::TABLE.'.name') |
|
->findAll(); |
|
} |
|
} |
|
|