Exemplo n.º 1
0
 public function updateUserSubscription($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);
     // --------------- update user subscription: ------------------------
     $model = new SubscriptionAlms($course_id, $edition_id, $classroom_id);
     $docebo_course = new DoceboCourse($course_id);
     $level_idst = $docebo_course->getCourseLevel($course_id);
     if (count($level_idst) == 0 || $level_idst[1] == '') {
         $level_idst = $docebo_course->createCourseLevel($course_id);
     }
     $update_ok = true;
     // -- update level -----
     if (!empty($user_level)) {
         $old_level = $model->getUserLevel($user_id);
         if (isset($level_idst[$user_level]) && isset($level_idst[$old_level])) {
             $acl_man->removeFromGroup($level_idst[$old_level], $user_id);
             $acl_man->addToGroup($level_idst[$user_level], $user_id);
             $ok = $model->updateUserLevel($user_id, $user_level);
             if (!$ok) {
                 $update_ok = false;
             }
         }
     }
     // -- update status -----
     if (!empty($user_status)) {
         $status_arr = $model->getUserStatusList();
         if (isset($status_arr[$user_status])) {
             $ok = $model->updateUserStatus($user_id, $user_status);
             if (!$ok) {
                 $update_ok = false;
             }
         }
     }
     if (!$update_ok) {
         $output['success'] = false;
     } else {
         $output['message'] = 'User subscription has been updated';
     }
     return $output;
 }
 public function inline_editorTask()
 {
     if (!$this->permissions['mod']) {
         $output = array('success' => false, 'message' => $this->_getErrorMessage('no permission'));
         echo $this->json->encode($output);
         return;
     }
     $id_course = isset($_SESSION['idCourse']) && $_SESSION['idCourse'] > 0 ? $_SESSION['idCourse'] : false;
     if ((int) $id_course <= 0) {
         $output = array('success' => false, 'message' => $this->_getErrorMessage('invalid course'));
         echo $this->json->encode($output);
         return;
     }
     $id_user = Get::req('id_user', DOTY_INT, -1);
     if ($id_user <= 0) {
         $output = array('success' => false, 'message' => $this->_getErrorMessage('invalid user'));
         echo $this->json->encode($output);
         return;
     }
     $old_value = Get::req('old_value', DOTY_MIXED, false);
     $new_value = Get::req('new_value', DOTY_MIXED, false);
     if ($old_value === false || $new_value === false) {
         $output = array('success' => false, 'message' => $this->_getErrorMessage("invalid data"));
         echo $this->json->encode($output);
         return;
     }
     $output = array();
     $col = Get::req('col', DOTY_STRING, "");
     switch ($col) {
         case "status":
             $smodel = new SubscriptionAlms($id_course);
             $slist = $smodel->getUserStatusList();
             $res = $smodel->updateUserStatus($id_user, $new_value);
             $output['success'] = $res ? true : false;
             $output['new_value'] = isset($slist[$new_value]) ? $slist[$new_value] : "";
             break;
         default:
             $output['success'] = false;
             $output['message'] = $this->_getErrorMessage("invalid column");
     }
     echo $this->json->encode($output);
 }