public function deleteUserSubscription($params) { require_once _lms_ . '/lib/lib.subscribe.php'; require_once _lms_ . '/lib/lib.course.php'; $output = array(); $output['success'] = true; if (empty($params['idst']) || (int) $params['idst'] <= 0) { return false; // return array('success'=>true, 'debug'=>print_r($params, true)); } else { $user_id = $params['idst']; } $course_id = isset($params['course_id']) ? (int) $params['course_id'] : false; $course_code = isset($params['course_code']) ? $params['course_code'] : false; $edition_id = isset($params['edition_id']) ? (int) $params['edition_id'] : false; $edition_code = isset($params['edition_code']) ? $params['edition_code'] : false; $classroom_id = isset($params['classroom_id']) ? (int) $params['classroom_id'] : false; $classroom_code = isset($params['classroom_code']) ? $params['classroom_code'] : false; $user_level = $this->getUserLevelId(isset($params['user_level']) ? $params['user_level'] : false); $user_status = $this->getUserStatusId(isset($params['user_status']) ? $params['user_status'] : false); $acl_man = Docebo::user()->getAclManager(); $course_man = new Man_Course(); $db = DbConn::getInstance(); $course_info = false; $edition_info = false; $classroom_info = false; $this->fillCourseDataFromParams($params, $db, $course_id, $edition_id, $classroom_id, $course_code, $edition_code, $classroom_code, $course_info, $edition_info, $classroom_info, $output); // --------------- delete user subscription: ------------------------ $model = new SubscriptionAlms($course_id, $edition_id, $classroom_id); $docebo_course = new DoceboCourse($course_id); $level_idst = $docebo_course->getCourseLevel($course_id); $old_level = $model->getUserLevel($user_id); $delete_ok = $model->delUser($user_id); if ($delete_ok) { if (empty($edition_id) && empty($classroom_id)) { $acl_man->removeFromGroup($level_idst[$old_level], $user_id); } } if (!$delete_ok) { $output['success'] = false; } else { $output['message'] = 'User has been removed from the course'; } return $output; }
/** * assign a group of user to a preassessment, you can specify if the users are administrator or not * @param int $id_assessment the id of the assessment * @param int $user_type is the identifier of the type of the user, use the constant USER_ASSES_TYPE_ADMIN, USER_ASSES_TYPE_USER * @param array $user_list the list of user that must be assigned to the assesment.If a user is not in this list, but is actually * assigned to the ass. the function will remove the user */ function updateAssessmentUser($id_assessment, $user_type, $user_list) { require_once _lms_ . '/lib/lib.course.php'; require_once _lms_ . '/admin/models/SubscriptionAlms.php'; $docebo_course = new DoceboCourse($id_assessment); $acl_man = Docebo::user()->getAclManager(); $subsciption_model = new SubscriptionAlms($id_assessment, 0, 0); $level_idst = $docebo_course->getCourseLevel($id_assessment); if (count($level_idst) == 0 || $level_idst[1] == '') { $level_idst = $docebo_course->createCourseLevel($id_assessment); } $level = 3; if ($user_type !== 'user') { $level = 6; } $op_result = true; $query = "\r\n\t\tSELECT " . implode($this->user_field, ',') . "\r\n\t\tFROM " . $this->tableUserAssessment() . "\r\n\t\tWHERE " . $this->user_field[USER_ASSES_ID] . " = '" . $id_assessment . "'\r\n\t\t\tAND " . $this->user_field[USER_ASSES_TYPE] . " = '" . $user_type . "'"; $re_query = $this->_query($query); while ($row = $this->fetch_row($re_query)) { if (isset($user_list[$row[USER_ASSES_ID_USER]])) { unset($user_list[$row[USER_ASSES_ID_USER]]); } else { $del_query = "\r\n\t\t\t\tDELETE FROM " . $this->tableUserAssessment() . "\r\n\t\t\t\tWHERE " . $this->user_field[USER_ASSES_ID] . " = '{$id_assessment}'\r\n\t\t\t\t\t AND " . $this->user_field[USER_ASSES_ID_USER] . " = '" . $row[USER_ASSES_ID_USER] . "'"; $op_result &= $this->_query($del_query); $acl_man->removeFromGroup($level_idst[$level], $row[USER_ASSES_ID_USER]); $subsciption_model->delUser($row[USER_ASSES_ID_USER]); } } // end while reset($user_list); while (list(, $id_user) = each($user_list)) { $upd_query = "\r\n\t\t\tINSERT INTO " . $this->tableUserAssessment() . "\r\n\t\t\t( \t" . $this->user_field[USER_ASSES_ID] . ",\r\n\t\t\t\t" . $this->user_field[USER_ASSES_ID_USER] . ",\r\n\t\t\t\t" . $this->user_field[USER_ASSES_TYPE] . " ) VALUES\r\n\t\t\t( \t'" . $id_assessment . "',\r\n\t\t\t\t'" . $id_user . "',\r\n\t\t\t\t'" . $user_type . "' )"; $op_result &= $this->_query($upd_query); $acl_man->addToGroup($level_idst[$level], $id_user); $subsciption_model->subscribeUser($id_user, $level, false); } return $op_result; }