|
|
|
@ -466,18 +466,23 @@ class UserGroup extends Model |
|
|
|
|
* @param int $id user group id |
|
|
|
|
* @return array with a list of user ids |
|
|
|
|
*/ |
|
|
|
|
public function get_users_by_usergroup($id = null, $relation = '') |
|
|
|
|
public function get_users_by_usergroup($id = null, $relationList = []) |
|
|
|
|
{ |
|
|
|
|
$relationCondition = ''; |
|
|
|
|
if (!empty($relationList)) { |
|
|
|
|
$relationListToString = implode("', '", $relationList); |
|
|
|
|
$relationCondition = " AND relation_type IN('$relationListToString')"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (empty($id)) { |
|
|
|
|
$conditions = array(); |
|
|
|
|
} else { |
|
|
|
|
$conditions = array('where' => array('usergroup_id = ?' => $id)); |
|
|
|
|
$conditions = array('where' => array("usergroup_id = ? $relationCondition "=> $id)); |
|
|
|
|
} |
|
|
|
|
$results = Database::select( |
|
|
|
|
'user_id', |
|
|
|
|
$this->usergroup_rel_user_table, |
|
|
|
|
$conditions, |
|
|
|
|
true |
|
|
|
|
$conditions |
|
|
|
|
); |
|
|
|
|
$array = array(); |
|
|
|
|
if (!empty($results)) { |
|
|
|
@ -500,9 +505,9 @@ class UserGroup extends Model |
|
|
|
|
$results = Database::select( |
|
|
|
|
'user_id', |
|
|
|
|
$this->usergroup_rel_user_table, |
|
|
|
|
$conditions, |
|
|
|
|
true |
|
|
|
|
$conditions |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$array = array(); |
|
|
|
|
if (!empty($results)) { |
|
|
|
|
foreach ($results as $row) { |
|
|
|
@ -837,7 +842,11 @@ class UserGroup extends Model |
|
|
|
|
$result = Database::select( |
|
|
|
|
'u.*', |
|
|
|
|
$from, |
|
|
|
|
array('where' => $where, 'order'=> "name $sord", 'LIMIT'=> "$start , $limit") |
|
|
|
|
array( |
|
|
|
|
'where' => $where, |
|
|
|
|
'order' => "name $sord", |
|
|
|
|
'LIMIT' => "$start , $limit" |
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$new_result = array(); |
|
|
|
@ -845,15 +854,23 @@ class UserGroup extends Model |
|
|
|
|
foreach ($result as $group) { |
|
|
|
|
$group['sessions'] = count($this->get_sessions_by_usergroup($group['id'])); |
|
|
|
|
$group['courses'] = count($this->get_courses_by_usergroup($group['id'])); |
|
|
|
|
$group['users'] = count($this->get_users_by_usergroup($group['id'])); |
|
|
|
|
|
|
|
|
|
switch ($group['group_type']) { |
|
|
|
|
case 0: |
|
|
|
|
$group['group_type'] = Display::label(get_lang('Class'), 'info'); |
|
|
|
|
$roles = [0]; |
|
|
|
|
break; |
|
|
|
|
case 1: |
|
|
|
|
$group['group_type'] = Display::label(get_lang('Social'), 'success'); |
|
|
|
|
$roles = [ |
|
|
|
|
GROUP_USER_PERMISSION_ADMIN, |
|
|
|
|
GROUP_USER_PERMISSION_READER, |
|
|
|
|
GROUP_USER_PERMISSION_MODERATOR, |
|
|
|
|
GROUP_USER_PERMISSION_HRM |
|
|
|
|
]; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
$group['users'] = count($this->get_users_by_usergroup($group['id'], $roles)); |
|
|
|
|
$new_result[] = $group; |
|
|
|
|
} |
|
|
|
|
$result = $new_result; |
|
|
|
|