Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 /**
  * 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;
 }