瀏覽代碼

Only count user that are admin, reader, moderator or hrm (not pending) see #1484

jmontoyaa 8 年之前
父節點
當前提交
1d928c9fe2
共有 1 個文件被更改,包括 25 次插入8 次删除
  1. 25 8
      main/inc/lib/usergroup.lib.php

+ 25 - 8
main/inc/lib/usergroup.lib.php

@@ -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;