@@ -18,7 +18,7 @@ class CoursesController { // extends Controller {
1818 /**
1919 * Constructor
2020 */
21- public function __construct() {
21+ public function __construct() {
2222 $this->toolname = 'auth';
2323 $actived_theme_path = api_get_template();
2424 $this->view = new View($this->toolname, $actived_theme_path);
@@ -34,7 +34,7 @@ public function __construct() {
3434 public function courses_list($action, $message = '') {
3535 $data = array();
3636 $user_id = api_get_user_id();
37-
37+
3838 $data['user_courses'] = $this->model->get_courses_of_user($user_id);
3939 $data['user_course_categories'] = $this->model->get_user_course_categories();
4040 $data['courses_in_category'] = $this->model->get_courses_in_category();
@@ -60,7 +60,7 @@ public function courses_list($action, $message = '') {
6060 * @param string error message(optional)
6161 */
6262 public function categories_list($action, $message='', $error='') {
63- $data = array();
63+ $data = array();
6464 $data['user_course_categories'] = $this->model->get_user_course_categories();
6565 $data['action'] = $action;
6666 $data['message'] = $message;
@@ -81,23 +81,23 @@ public function categories_list($action, $message='', $error='') {
8181 */
8282 public function courses_categories($action, $category_code = null, $message = '', $error = '', $content = null) {
8383 $data = array();
84- $browse_course_categories = $this->model->browse_course_categories();
85-
84+ $browse_course_categories = $this->model->browse_course_categories();
85+
8686 if ($action == 'display_random_courses') {
8787 $data['browse_courses_in_category'] = $this->model->browse_courses_in_category(null, 10);
8888 } else {
8989 if (!isset($category_code)) {
9090 $category_code = $browse_course_categories[0][1]['code']; // by default first category
91- }
91+ }
9292 $data['browse_courses_in_category'] = $this->model->browse_courses_in_category($category_code);
9393 }
94-
94+
9595 $data['browse_course_categories'] = $browse_course_categories;
9696 $data['code'] = Security::remove_XSS($category_code);
9797
9898 // getting all the courses to which the user is subscribed to
9999 $curr_user_id = api_get_user_id();
100- $user_courses = $this->model->get_courses_of_user($curr_user_id);
100+ $user_courses = $this->model->get_courses_of_user($curr_user_id);
101101 $user_coursecodes = array();
102102
103103 // we need only the course codes as these will be used to match against the courses of the category
@@ -106,14 +106,14 @@ public function courses_categories($action, $category_code = null, $message = ''
106106 $user_coursecodes[] = $value['code'];
107107 }
108108 }
109-
109+
110110 if (api_is_drh()) {
111111 $courses = CourseManager::get_courses_followed_by_drh(api_get_user_id());
112112 foreach ($courses as $course) {
113113 $user_coursecodes[] = $course['code'];
114- }
114+ }
115115 }
116-
116+
117117 $data['user_coursecodes'] = $user_coursecodes;
118118 $data['action'] = $action;
119119 $data['message'] = $message;
@@ -167,19 +167,26 @@ public function search_courses($search_term, $message = '', $error = '') {
167167 }
168168
169169 /**
170- *
170+ * Auto user subcription to a course
171171 */
172172 public function subscribe_user($course_code, $search_term, $category_code) {
173173 $data = array();
174- $result = $this->model->subscribe_user($course_code);
175- if (!$result) {
176- $error = get_lang('CourseRegistrationCodeIncorrect');
174+ $courseInfo = api_get_course_info($course_code);
175+ // The course must be open in order to access the auto subscription
176+ if (in_array($courseInfo['visibility'], array(COURSE_VISIBILITY_CLOSED, COURSE_VISIBILITY_REGISTERED))) {
177+ $error = get_lang('SubscribingNotAllowed');
178+ //$message = get_lang('SubscribingNotAllowed');
177179 } else {
178- //Redirect directly to the course after subscription
179- $message = $result['message'];
180- $content = $result['content'];
180+ $result = $this->model->subscribe_user($course_code);
181+ if (!$result) {
182+ $error = get_lang('CourseRegistrationCodeIncorrect');
183+ } else {
184+ //Redirect directly to the course after subscription
185+ $message = $result['message'];
186+ $content = $result['content'];
187+ }
181188 }
182-
189+
183190 if (!empty($search_term)) {
184191 $this->search_courses($search_term, $message, $error);
185192 } else {
0 commit comments