Browse Source

Teachers can create/edit sessions depends in a platform setting see BT#4296

Julio Montoya 12 years ago
parent
commit
1a5c95c4b0

+ 6 - 6
main/admin/index.php

@@ -180,20 +180,20 @@ if (api_is_platform_admin()) {
 $blocks['sessions']['icon']  = Display::return_icon('session.png', get_lang('Sessions'), array(), ICON_SIZE_SMALL, false);
 $blocks['sessions']['label'] = api_ucfirst(get_lang('Sessions'));
 
-$search_form = ' <form method="GET" class="form-search" action="session_list.php">
+$search_form = ' <form method="GET" class="form-search" action="'.api_get_path(WEB_CODE_PATH).'session/session_list.php">
                     <input class="span3" type="text" name="keyword" value="">
                     <button class="btn" type="submit">'.get_lang('Search').'</button>
                 </form>';
 $blocks['sessions']['search_form'] = $search_form;
 $items = array();
-$items[] = array('url'=>'session_list.php', 	'label' => get_lang('ListSession'));
-$items[] = array('url'=>'session_add.php', 	'label' => get_lang('AddSession'));
-$items[] = array('url'=>'session_category_list.php', 	'label' => get_lang('ListSessionCategory'));
-$items[] = array('url'=>'session_import.php', 	'label' => get_lang('ImportSessionListXMLCSV'));
+$items[] = array('url'=> api_get_path(WEB_CODE_PATH).'session/session_list.php', 'label' => get_lang('ListSession'));
+$items[] = array('url'=> api_get_path(WEB_CODE_PATH).'session/session_add.php', 	'label' => get_lang('AddSession'));
+$items[] = array('url'=> 'session_category_list.php', 	'label' => get_lang('ListSessionCategory'));
+$items[] = array('url'=> api_get_path(WEB_CODE_PATH).'session/session_import.php', 	'label' => get_lang('ImportSessionListXMLCSV'));
 if (isset($extAuthSource) && isset($extAuthSource['ldap']) && count($extAuthSource['ldap']) > 0) {
     $items[] = array('url'=>'ldap_import_students_to_session.php', 	'label' => get_lang('ImportLDAPUsersIntoSession'));
 }
-$items[] = array('url'=>'session_export.php', 	'label' => get_lang('ExportSessionListXMLCSV'));
+$items[] = array('url'=>api_get_path(WEB_CODE_PATH).'session/session_export.php', 	'label' => get_lang('ExportSessionListXMLCSV'));
 $items[] = array('url'=>'../coursecopy/copy_course_session.php', 	'label' => get_lang('CopyFromCourseInSessionToAnotherSession'));
 
 if (api_is_platform_admin()) {

+ 3 - 1
main/inc/global.inc.php

@@ -381,7 +381,7 @@ if (isset($_configuration['main_database'])) {
     $sortableListener = new \Gedmo\Sortable\SortableListener();
     $app['db.event_manager']->addEventSubscriber($sortableListener);
 }
-
+$app['is_admin'] = false;
 //Creating a Chamilo service provider
 use Silex\ServiceProviderInterface;
 
@@ -389,6 +389,8 @@ class ChamiloServiceProvider implements ServiceProviderInterface
 {
     public function register(Application $app)
     {
+
+
         //Template
         $app['template'] = $app->share(function () use ($app) {
             $template = new Template(null, $app);

+ 1 - 1
main/inc/lib/main_api.lib.php

@@ -6789,4 +6789,4 @@ function api_get_language_interface() {
 
 function load_translations($app) {
 
-}
+}

+ 24 - 8
main/inc/lib/sessionmanager.lib.php

@@ -187,10 +187,15 @@ class SessionManager {
 
         $where = 'WHERE 1 = 1 ';
         $user_id = api_get_user_id();
+
         if (api_is_session_admin() && api_get_setting('allow_session_admins_to_manage_all_sessions') == 'false') {
             $where .=" AND s.session_admin_id = $user_id ";
         }
 
+        if (!api_is_platform_admin() && api_is_teacher() && api_get_setting('allow_teachers_to_create_sessions') == 'true') {
+            $where .=" AND s.id_coach = $user_id ";
+        }
+
         $inject_extra_fields = null;
         $extra_fields = array();
         $extra_fields_info = array();
@@ -238,7 +243,6 @@ class SessionManager {
             }
         }
 
-
         $options_by_double = array();
         foreach ($double_fields as $double) {
             $my_options = $extra_field_option->get_field_options_by_field($double['id'], true);
@@ -840,7 +844,7 @@ class SessionManager {
      * @return    void    Nothing, or false on error
      * The parameters is a array to delete sessions
      **/
-    public static function delete_session ($id_checked,$from_ws = false) {
+    public static function delete_session ($id_checked, $from_ws = false) {
         $tbl_session=                        Database::get_main_table(TABLE_MAIN_SESSION);
         $tbl_session_rel_course=            Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
         $tbl_session_rel_course_rel_user=    Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
@@ -2248,14 +2252,26 @@ class SessionManager {
         return $row[0];
     }
 
-    static function protect_session_edit($id) {
-        api_protect_admin_script(true);
-        $session_info = self::fetch($id);
-        if (empty($session_info)) {
+    static function protect_session_edit($id = null) {
+        $blockTeachers = !api_is_platform_admin() && (!api_is_teacher() || (api_is_teacher() && api_get_setting('allow_teachers_to_create_sessions') == 'false'));
+        if ($blockTeachers) {
             api_not_allowed(true);
         }
-        if (!api_is_platform_admin() && api_get_setting('allow_session_admins_to_manage_all_sessions') != 'true') {
-            if ($session_info['session_admin_id'] != api_get_user_id()) {
+
+        if (!empty($id)) {
+            $session_info = self::fetch($id);
+
+            if (empty($session_info)) {
+                api_not_allowed(true);
+            }
+
+            if ($blockTeachers && !api_is_platform_admin() && api_get_setting('allow_session_admins_to_manage_all_sessions') != 'true') {
+                if ($session_info['session_admin_id'] != api_get_user_id()) {
+                    api_not_allowed(true);
+                }
+            }
+            //Blocking teachers that want to edit another session
+            if ($blockTeachers == false && $session_info['id_coach'] != api_get_user_id()) {
                 api_not_allowed(true);
             }
         }

+ 10 - 19
main/admin/add_courses_to_session.php → main/session/add_courses_to_session.php

@@ -19,14 +19,13 @@ $id_session = isset($_GET['id_session']) ? intval($_GET['id_session']) : null;
 SessionManager::protect_session_edit($id_session);
 
 $xajax = new xajax();
-//$xajax->debugOn();
 $xajax -> registerFunction (array('search_courses', 'AddCourseToSession', 'search_courses'));
 
 // Setting the section (for the tabs)
 $this_section = SECTION_PLATFORM_ADMIN;
 
 // setting breadcrumbs
-$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdmin'));
+$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('Sessions'));
 $interbreadcrumb[] = array('url' => 'session_list.php','name' => get_lang('SessionList'));
 $interbreadcrumb[] = array('url' => "resume_session.php?id_session=".$id_session,"name" => get_lang('SessionOverview'));
 
@@ -50,10 +49,8 @@ $page = isset($_GET['page']) ? Security::remove_XSS($_GET['page']) : null;
 $xajax -> processRequests();
 
 $htmlHeadXtra[] = $xajax->getJavascript('../inc/lib/xajax/');
-$htmlHeadXtra[] = '
-<script type="text/javascript">
+$htmlHeadXtra[] = '<script>
 function add_course_to_session (code, content) {
-
 	document.getElementById("course_to_add").value = "";
 	document.getElementById("ajax_list_courses_single").innerHTML = "";
 
@@ -112,7 +109,6 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
 	$result     = Database::query($sql);
 	$UserList   = Database::store_result($result);
 
-
 	foreach($CourseList as $enreg_course) {
 		$enreg_course = Database::escape_string($enreg_course);
 		$exists = false;
@@ -156,11 +152,13 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
 	$nbr_courses=count($CourseList);
 	Database::query("UPDATE $tbl_session SET nbr_courses=$nbr_courses WHERE id='$id_session'");
 
-	if(isset($_GET['add']))
+	if (isset($_GET['add'])) {
 		header('Location: add_users_to_session.php?id_session='.$id_session.'&add=true');
-	else
+        exit;
+    } else {
 		header('Location: resume_session.php?id_session='.$id_session);
-		//header('Location: '.$_GET['page'].'?id_session='.$id_session);
+        exit;
+    }
 }
 
 // display the dokeos header
@@ -261,8 +259,7 @@ unset($Courses);
 <input type="hidden" name="formSent" value="1" />
 
 <?php
-if(!empty($errorMsg))
-{
+if(!empty($errorMsg)) {
 	Display::display_normal_message($errorMsg); //main API
 }
 ?>
@@ -358,8 +355,7 @@ unset($sessionCourses);
 </table>
 
 </form>
-<script type="text/javascript">
-<!--
+<script>
 function moveItem(origin , destination){
 
 	for(var i = 0 ; i<origin.options.length ; i++) {
@@ -371,8 +367,6 @@ function moveItem(origin , destination){
 	}
 	destination.selectedIndex = -1;
 	sortOptions(destination.options);
-
-
 }
 
 function sortOptions(options) {
@@ -409,10 +403,7 @@ function valide(){
 
 	document.forms.formulaire.submit();
 }
--->
-
 </script>
 <?php
 /*		FOOTER 	*/
-Display::display_footer();
-?>
+Display::display_footer();

+ 1 - 1
main/admin/add_users_to_session.php → main/session/add_users_to_session.php

@@ -24,7 +24,7 @@ $id_session = intval($_GET['id_session']);
 SessionManager::protect_session_edit($id_session);
 
 // setting breadcrumbs
-$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdmin'));
+$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('Sessions'));
 $interbreadcrumb[] = array('url' => 'session_list.php', 'name' => get_lang('SessionList'));
 $interbreadcrumb[] = array(
     'url'  => "resume_session.php?id_session=".$id_session,

+ 50 - 50
main/admin/resume_session.php → main/session/resume_session.php

@@ -20,7 +20,7 @@ SessionManager::protect_session_edit($id_session);
 
 $tool_name = get_lang('SessionOverview');
 
-$interbreadcrumb[] = array('url' => 'index.php','name' => get_lang('PlatformAdmin'));
+$interbreadcrumb[] = array('url' => 'index.php','name' => get_lang('Sessions'));
 $interbreadcrumb[] = array('url' => 'session_list.php','name' => get_lang('SessionList'));
 
 $session = api_get_session_info($id_session);
@@ -32,10 +32,10 @@ if (!empty($session_cat_info)) {
 
 $action = isset($_GET['action']) ? $_GET['action'] : null;
 
-$url_id = api_get_current_access_url_id();     
+$url_id = api_get_current_access_url_id();
 
 switch ($action) {
-    case 'add_user_to_url':        
+    case 'add_user_to_url':
         $user_id = $_REQUEST['user_id'];
         $result = UrlManager::add_user_to_url($user_id, $url_id);
         $user_info = api_get_user_info($user_id);
@@ -48,7 +48,7 @@ switch ($action) {
             SessionManager::delete_course_in_session($id_session, $_GET['course_code_to_delete']);
         }
         if (!empty($_GET['user'])) {
-            SessionManager::unsubscribe_user_from_session($id_session, $_GET['user']);            
+            SessionManager::unsubscribe_user_from_session($id_session, $_GET['user']);
         }
         break;
 }
@@ -85,25 +85,25 @@ $coach_info = api_get_user_info($session['id_coach']);
 <?php } ?>
 <tr>
 	<td><?php echo get_lang('SessionDisplayStartDate'); ?> :</td>
-	<td><?php echo api_get_local_time($session['display_start_date'], null, null, true); ?></td>    
+	<td><?php echo api_get_local_time($session['display_start_date'], null, null, true); ?></td>
 </tr>
 <tr>
     <td><?php echo get_lang('SessionDisplayEndDate'); ?> :</td>
 	<td><?php echo api_get_local_time($session['display_end_date'], null, null, true); ?></td>
 </tr>
-<tr>    
+<tr>
     <td><?php echo get_lang('SessionStartDate'); ?> :</td>
 	<td><?php echo api_get_local_time($session['access_start_date'], null, null, true); ?></td>
 </tr>
-<tr>    
+<tr>
     <td><?php echo get_lang('SessionEndDate'); ?> :</td>
 	<td><?php echo api_get_local_time($session['access_end_date'], null, null, true); ?></td>
 </tr>
-<tr>    
+<tr>
     <td><?php echo get_lang('SessionCoachStartDate'); ?> :</td>
 	<td><?php echo api_get_local_time($session['coach_access_start_date'], null, null, true); ?></td>
 </tr>
-<tr>    
+<tr>
     <td><?php echo get_lang('SessionCoachEndDate'); ?> :</td>
 	<td><?php echo api_get_local_time($session['coach_access_end_date'], null, null, true); ?></td>
 </tr>
@@ -112,17 +112,17 @@ $coach_info = api_get_user_info($session['id_coach']);
 		<?php echo api_ucfirst(get_lang('SessionVisibility')) ?> :
 	</td>
 	<td>
-		<?php        
-        if (isset($session['access_end_date']) && $session['access_end_date'] != '0000-00-00 00:00:00') {            
-            if ($session['visibility'] == 1) 
-                echo get_lang('ReadOnly'); 
-             elseif($session['visibility'] == 2) 
+		<?php
+        if (isset($session['access_end_date']) && $session['access_end_date'] != '0000-00-00 00:00:00') {
+            if ($session['visibility'] == 1)
+                echo get_lang('ReadOnly');
+             elseif($session['visibility'] == 2)
                  echo get_lang('Visible');
-             elseif($session['visibility'] == 3) 
+             elseif($session['visibility'] == 3)
                 echo api_ucfirst(get_lang('Invisible'));
         } else {
-            //By default course sessions can be access normally see function api_get_session_visibility() when no date_end is proposed            
-            echo get_lang('Visible'); 
+            //By default course sessions can be access normally see function api_get_session_visibility() when no date_end is proposed
+            echo get_lang('Visible');
         }
         ?>
 	</td>
@@ -134,33 +134,33 @@ $session_field = new SessionField();
 $session_fields = $session_field->get_all();
 foreach ($session_fields as $session_field) {
     if ($session_field['field_visible'] != '1') {
-        continue;        
+        continue;
     }
     $obj = new SessionFieldValue();
     $result = $obj->get_values_by_handler_and_field_id($id_session, $session_field['id'], true);
-    
+
     $session_value = null;
     if ($result) {
         $session_value = $result['field_value'];
-    }    
+    }
     echo "<tr>";
     echo "<td> {$session_field['field_display_text']} </td>";
     echo "<td> $session_value </td>";
-    echo "</tr>";    
+    echo "</tr>";
 }
 
 
 $multiple_url_is_on = api_is_multiple_url_enabled();
 
 if ($multiple_url_is_on) {
-    echo '<tr><td>';   
-    echo 'URL';    
+    echo '<tr><td>';
+    echo 'URL';
     echo '</td>';
     echo '<td>';
     $url_list = UrlManager::get_access_url_from_session($id_session);
     foreach ($url_list as $url_data) {
         echo $url_data['url'].'<br />';
-    }        
+    }
     echo '</td></tr>';
 }
 ?>
@@ -187,8 +187,8 @@ if ($session['nbr_courses'] == 0){
 	echo '<tr>
 			<td colspan="4">'.get_lang('NoCoursesForThisSession').'</td>
 		</tr>';
-} else {    
-    $courses = SessionManager::get_course_list_by_session_id($id_session);	
+} else {
+    $courses = SessionManager::get_course_list_by_session_id($id_session);
 	foreach ($courses as $course) {
         $count_users = SessionManager::get_count_users_in_course_session($course['code'], $id_session);
         $coaches = SessionManager::get_session_course_coaches_to_string($course['code'], $id_session);
@@ -201,10 +201,10 @@ if ($session['nbr_courses'] == 0){
 			<td>'.$coaches.'</td>
 			<td>'.$count_users.'</td>
 			<td>
-                <a href="'.api_get_path(WEB_COURSE_PATH).$course['code'].'/?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('Course')).'</a>   
+                <a href="'.api_get_path(WEB_COURSE_PATH).$course['code'].'/?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('Course')).'</a>
                 <a href="session_course_user_list.php?id_session='.$id_session.'&course_code='.$course['code'].'">'.Display::return_icon('user.png', get_lang('Edit'), '', ICON_SIZE_SMALL).'</a>
-                <a href="'.api_get_path(WEB_CODE_PATH).'/user/user_import.php?action=import&cidReq='.$course['code'].'&id_session='.$id_session.'">'.Display::return_icon('import_csv.png', get_lang('ImportUsersToACourse'), null, ICON_SIZE_SMALL).'</a>   
-				<a href="../tracking/courseLog.php?id_session='.$id_session.'&cidReq='.$course['code'].$orig_param.'&hide_course_breadcrumb=1">'.Display::return_icon('statistics.gif', get_lang('Tracking')).'</a>&nbsp;                
+                <a href="'.api_get_path(WEB_CODE_PATH).'/user/user_import.php?action=import&cidReq='.$course['code'].'&id_session='.$id_session.'">'.Display::return_icon('import_csv.png', get_lang('ImportUsersToACourse'), null, ICON_SIZE_SMALL).'</a>
+				<a href="../tracking/courseLog.php?id_session='.$id_session.'&cidReq='.$course['code'].$orig_param.'&hide_course_breadcrumb=1">'.Display::return_icon('statistics.gif', get_lang('Tracking')).'</a>&nbsp;
 				<a href="session_course_edit.php?id_session='.$id_session.'&page=resume_session.php&course_code='.$course['code'].''.$orig_param.'">'.Display::return_icon('edit.png', get_lang('Edit'), '', ICON_SIZE_SMALL).'</a>
 				<a href="'.api_get_self().'?id_session='.$id_session.'&action=delete&course_code_to_delete='.$course['code'].'" onclick="javascript:if(!confirm(\''.get_lang('ConfirmYourChoice').'\')) return false;">'.Display::return_icon('delete.png', get_lang('Delete')).'</a>
 			</td>
@@ -249,14 +249,14 @@ echo Display::page_subheader(get_lang('StudentList').$url);
 <?php
 /*
 if ($session['nbr_users'] == 0) {
-	
-} else {    
+
+} else {
 */
 	$orig_param = '&origin=resume_session&id_session='.$id_session; // change breadcrumb in destination page
-    
-    $users = SessionManager::get_users_by_session($id_session, 0);        
+
+    $users = SessionManager::get_users_by_session($id_session, 0);
     //$reasons = SessionManager::get_session_change_user_reasons();
-    
+
     if (!empty($users)) {
         foreach ($users as $user) {
             $user_info = api_get_user_info($user['user_id']);
@@ -265,9 +265,9 @@ if ($session['nbr_users'] == 0) {
             $user_status_in_platform = Display::return_icon('error.png', get_lang('Inactive'));
             $information = '';
             $moved_date = '-';
-            
+
             if ($user_info['active'] == 1 ) {
-                $user_status_in_platform = Display::return_icon('accept.png', get_lang('Active'));                
+                $user_status_in_platform = Display::return_icon('accept.png', get_lang('Active'));
                 //$link_class = null;
             } else {
                 $status_info = get_latest_event_by_user_and_type($user['user_id'], LOG_USER_DEACTIVATED);
@@ -278,8 +278,8 @@ if ($session['nbr_users'] == 0) {
                 }
                 $user_info['complete_name_with_username'] = Display::tag('del', $user_info['complete_name_with_username']);
             }
-            
-            $user_link = '';            
+
+            $user_link = '';
             if (!empty($user['user_id'])) {
                 $user_link = '<a '.$link_class.' href="'.api_get_path(WEB_CODE_PATH).'admin/user_information.php?user_id='.intval($user['user_id']).'">'.$user_info['complete_name_with_username'].'</a>';
             }
@@ -292,38 +292,38 @@ if ($session['nbr_users'] == 0) {
 
             //User in this session is subscribed but was moved to another session
             if (isset($user['moved_to']) && !empty($user['moved_to']) || $user['moved_status'] == SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION) {
-                
+
                 $variation = SessionManager::get_session_change_user_reasons_variations_by_id($user['moved_status'], 'to');
                 //$information = $reasons[$user['moved_status']].$variation;
                 $information .= $variation;
 
-                $moved_date = isset($user['moved_at']) && $user['moved_at'] != '0000-00-00 00:00:00' ? api_get_local_time($user['moved_at']) : '-';                        
+                $moved_date = isset($user['moved_at']) && $user['moved_at'] != '0000-00-00 00:00:00' ? api_get_local_time($user['moved_at']) : '-';
                 $session_info = SessionManager::fetch($user['moved_to']);
 
                 if ($user['moved_status'] != SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION) {
-                    $url = api_get_path(WEB_CODE_PATH).'admin/resume_session.php?id_session='.$id_session;                
-                    //$origin = Display::url($session['name'], $url);                
+                    $url = api_get_path(WEB_CODE_PATH).'admin/resume_session.php?id_session='.$id_session;
+                    //$origin = Display::url($session['name'], $url);
 
                     if ($session_info) {
                         $url = api_get_path(WEB_CODE_PATH).'admin/resume_session.php?id_session='.$session_info['id'];
                         $destination = Display::url($session_info['name'], $url);
                         //$destination = $destination;
-                    }            
+                    }
                 }
                 $row_style = 'style = " background-color: #ddd;"';
                 $course_link=  Display::return_icon('course_na.gif', get_lang('BlockCoursesForThisUser')).'&nbsp;';
                 $moved_link =  Display::return_icon('move_na.png', get_lang('ChangeUserSession')).'&nbsp;';
                 $delete_link = Display::return_icon('delete_na.png', get_lang('Delete')).'&nbsp;';
-            } else {          
+            } else {
                 $session_origin_info = SessionManager::get_session_rel_user_by_moved_to($id_session, $user['user_id']);
 
                 if (!empty($session_origin_info)) {
                    $moved_date = api_get_local_time($session_origin_info['moved_at']);
-                }            
+                }
                 $session_info = SessionManager::fetch($session_origin_info['id_session']);
-                
+
                 $variation = SessionManager::get_session_change_user_reasons_variations_by_id($session_origin_info['moved_status'], 'from');
-                
+
                 //$information = $reasons[$session_origin_info['moved_status']].$variation;
                 $information .= $variation;
 
@@ -331,7 +331,7 @@ if ($session['nbr_users'] == 0) {
                     $url = api_get_path(WEB_CODE_PATH).'admin/resume_session.php?id_session='.$session_info['id'];
                     $origin = Display::url($session_info['name'], $url);
 
-                    $url = api_get_path(WEB_CODE_PATH).'admin/resume_session.php?id_session='.$id_session;                
+                    $url = api_get_path(WEB_CODE_PATH).'admin/resume_session.php?id_session='.$id_session;
                     //$destination = Display::url($session['name'], $url);
                     //$destination = ' / '.$destination;
                 }
@@ -343,11 +343,11 @@ if ($session['nbr_users'] == 0) {
             $link_to_add_user_in_url = '';
 
             if ($multiple_url_is_on) {
-                if ($user['access_url_id'] != $url_id) {            
+                if ($user['access_url_id'] != $url_id) {
                     $user_link .= ' '.Display::return_icon('warning.png', get_lang('UserNotAddedInURL'), array(), ICON_SIZE_SMALL);
                     $add = Display::return_icon('add.png', get_lang('AddUsersToURL'), array(), ICON_SIZE_SMALL);
                     $link_to_add_user_in_url = '<a href="resume_session.php?action=add_user_to_url&id_session='.$id_session.'&user_id='.$user['user_id'].'">'.$add.'</a>';
-                }                
+                }
             }
 
             echo '<tr '.$row_style.'>

+ 10 - 5
main/admin/session_add.php → main/session/session_add.php

@@ -17,9 +17,9 @@ require_once '../inc/global.inc.php';
 // setting the section (for the tabs)
 $this_section = SECTION_PLATFORM_ADMIN;
 
-api_protect_admin_script(true);
+SessionManager::protect_session_edit();
 
-$interbreadcrumb[] = array('url' => 'index.php',       'name' => get_lang('PlatformAdmin'));
+$interbreadcrumb[] = array('url' => 'index.php',       'name' => get_lang('Sessions'));
 $interbreadcrumb[] = array('url' => 'session_list.php','name' => get_lang('SessionList'));
 
 $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/tag/jquery.fcbkcomplete.js" type="text/javascript" language="javascript"></script>';
@@ -83,7 +83,6 @@ function check() {
 }
 
 $(function() {
-
     $("#coach_id").fcbkcomplete({
         json_url: "'.$url.'&a=find_coaches",
         maxitems: 1,
@@ -208,8 +207,13 @@ if (empty($id)) {
 }
 //Coaches
 //$coaches = SessionManager::get_user_list();
-$form->addElement('select', 'id_coach', get_lang('CoachName'), array(),array('id' => 'coach_id'));
-$form->addRule('id_coach', get_lang('ThisFieldIsRequired'), 'required');
+
+if (api_is_platform_admin()) {
+    $form->addElement('select', 'id_coach', get_lang('CoachName'), array(), array('id' => 'coach_id'));
+    $form->addRule('id_coach', get_lang('ThisFieldIsRequired'), 'required');
+} else {
+    $form->addElement('hidden', 'id_coach', api_get_user_id());
+}
 
 $form->addElement('advanced_settings','<a class="btn btn-show" id="advanced_parameters" href="javascript://">'.get_lang('AdvancedParameters').'</a>');
 $form->addElement('html','<div id="options" style="display:none">');
@@ -276,6 +280,7 @@ if (!empty($session_info)) {
 
 if ($form->validate()) {
     $params = $form->getSubmitValues();
+
     if (isset($params['id'])) {
         SessionManager::update($params);
         header('Location: resume_session.php?id_session='.$params['id']);

+ 2 - 2
main/admin/session_course_edit.php → main/session/session_course_edit.php

@@ -28,12 +28,12 @@ $tbl_session_rel_course_rel_user	= Database::get_main_table(TABLE_MAIN_SESSION_C
 $course_info=api_get_course_info($_REQUEST['course_code']);
 $tool_name = $course_info['name'];
 
-$interbreadcrumb[]=array('url' => 'index.php',"name" => get_lang('PlatformAdmin'));
+$interbreadcrumb[]=array('url' => 'index.php',"name" => get_lang('Sessions'));
 $interbreadcrumb[]=array('url' => "session_list.php","name" => get_lang("SessionList"));
 $interbreadcrumb[]=array('url' => "resume_session.php?id_session=".$id_session,"name" => get_lang('SessionOverview'));
 $interbreadcrumb[]=array('url' => "session_course_list.php?id_session=$id_session","name" =>api_htmlentities($session_name,ENT_QUOTES,$charset));
 
-$result = Database::query("SELECT s.name, c.title FROM $tbl_session_course sc,$tbl_session s,$tbl_course c 
+$result = Database::query("SELECT s.name, c.title FROM $tbl_session_course sc,$tbl_session s,$tbl_course c
                            WHERE sc.id_session=s.id AND sc.course_code=c.code AND sc.id_session='$id_session' AND sc.course_code='".$course_code."'");
 
 if (!list($session_name,$course_title)=Database::fetch_row($result)) {

+ 3 - 10
main/admin/session_course_user.php → main/session/session_course_user.php

@@ -20,7 +20,7 @@ $id_session = intval($_GET['id_session']);
 SessionManager::protect_session_edit($id_session);
 
 // setting breadcrumbs
-$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdmin'));
+$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('Sessions'));
 $interbreadcrumb[] = array('url' => 'session_list.php','name' => get_lang('SessionList'));
 $interbreadcrumb[] = array('url' => 'resume_session.php?id_session='.Security::remove_XSS($_GET['id_session']),'name' => get_lang('SessionOverview'));
 
@@ -38,14 +38,7 @@ $id_user = intval($_GET['id_user']);
 
 if (empty($id_user) || empty($id_session)) {
 	header('Location: resume_session.php?id_session='.$id_session);
-}
-
-if (!api_is_platform_admin()) {
-	$sql = 'SELECT session_admin_id FROM '.Database :: get_main_table(TABLE_MAIN_SESSION).' WHERE id='.$id_session;
-	$rs = Database::query($sql);
-	if (Database::result($rs,0,0)!=$_user['user_id']) {
-		api_not_allowed(true);
-	}
+    exit;
 }
 
 $formSent=0;
@@ -93,7 +86,7 @@ if ($_POST['formSent']) {
 			}
 		}
 	}
-    
+
 	foreach ($existingCourses as $existingCourse) {
 		//$sql_insert_rel_course= "INSERT INTO $tbl_session_rel_course(id_session,course_code, id_coach) VALUES('$id_session','$enreg_course','$id_coach')";
 		if(!in_array($existingCourse['code'], $CourseList)){

+ 5 - 5
main/admin/session_course_user_list.php → main/session/session_course_user_list.php

@@ -52,7 +52,7 @@ if (!isset($courses[$course_info['real_id']])) {
 
 switch ($action) {
     case 'delete':
-        SessionManager::unsubscribe_user_from_course_session($id_session, $idChecked, $course_code);        
+        SessionManager::unsubscribe_user_from_course_session($id_session, $idChecked, $course_code);
         header('Location: '.api_get_self().'?id_session='.$id_session.'&course_code='.urlencode($course_code).'&sort='.$sort);
         exit;
         break;
@@ -69,13 +69,13 @@ $from   = $page * $limit;
 $is_western_name_order = api_is_western_name_order();
 
 $Users = SessionManager::get_users_in_course_session($course_code, $id_session, $sort, $direction, $from, $limit);
-        
+
 /*
 
 $sql = "SELECT DISTINCT u.user_id,".($is_western_name_order ? 'u.firstname, u.lastname' : 'u.lastname, u.firstname').", u.username, scru.id_user as is_subscribed
-             FROM $tbl_session_rel_user s INNER JOIN $tbl_user u ON (u.user_id=s.id_user) 
+             FROM $tbl_session_rel_user s INNER JOIN $tbl_user u ON (u.user_id=s.id_user)
                     LEFT JOIN $tbl_session_rel_course_rel_user scru ON (u.user_id=scru.id_user AND  scru.course_code = '".$course_code."' )
-             WHERE s.id_session='$id_session' 
+             WHERE s.id_session='$id_session'
              ORDER BY $sort $direction LIMIT $from,".($limit+1);
 */
 if ($direction == 'desc') {
@@ -88,7 +88,7 @@ $nbr_results = sizeof($Users);
 
 $tool_name = get_lang('Session').': '.$session_info['name'].' - '.get_lang('Course').': '.$course_info['title'];
 
-$interbreadcrumb[] = array("url" => "index.php","name" => get_lang('PlatformAdmin'));
+$interbreadcrumb[] = array("url" => "index.php","name" => get_lang('Sessions'));
 $interbreadcrumb[] = array("url" => "session_list.php","name" => get_lang('SessionList'));
 $interbreadcrumb[] = array('url' => "resume_session.php?id_session=".$id_session,"name" => get_lang('SessionOverview'));
 

+ 3 - 3
main/admin/session_export.php → main/session/session_export.php

@@ -33,7 +33,7 @@ $tool_name = get_lang('ExportSessionListXMLCSV');
 
 global $_configuration;
 
-$interbreadcrumb[] = array('url' => 'index.php', "name" => get_lang('PlatformAdmin'));
+$interbreadcrumb[] = array('url' => 'index.php', "name" => get_lang('Sessions'));
 
 set_time_limit(0);
 
@@ -42,14 +42,14 @@ if ($_POST['formSent']) {
     $file_type = ($_POST['file_type'] == 'csv') ? 'csv' : 'xml';
     $session_id = $_POST['session_id'];
     if (empty($session_id)) {
-        $sql = "SELECT id,name,id_coach,username,access_start_date,access_end_date,visibility,session_category_id 
+        $sql = "SELECT id,name,id_coach,username,access_start_date,access_end_date,visibility,session_category_id
                 FROM $tbl_session INNER JOIN $tbl_user
 				ON $tbl_user.user_id = $tbl_session.id_coach ORDER BY id";
         if ($_configuration['multiple_access_urls']) {
             $tbl_session_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
             $access_url_id = api_get_current_access_url_id();
             if ($access_url_id != -1) {
-                $sql = "SELECT id, name,id_coach,username,access_start_date,access_end_date,visibility,session_category_id 
+                $sql = "SELECT id, name,id_coach,username,access_start_date,access_end_date,visibility,session_category_id
                 FROM $tbl_session s INNER JOIN $tbl_session_rel_access_url as session_rel_url
 				ON (s.id= session_rel_url.session_id) INNER JOIN $tbl_user u ON (u.user_id = s.id_coach)
 				WHERE access_url_id = $access_url_id

+ 36 - 36
main/admin/session_import.php → main/session/session_import.php

@@ -27,7 +27,7 @@ $tbl_session_course_user    = Database::get_main_table(TABLE_MAIN_SESSION_COURSE
 
 $tool_name = get_lang('ImportSessionListXMLCSV');
 
-$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdmin'));
+$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('Sessions'));
 
 set_time_limit(0);
 
@@ -36,7 +36,7 @@ $purification_option_for_usernames = false;
 
 $inserted_in_course = array();
 
-global $_configuration;                            
+global $_configuration;
 
 if ($_POST['formSent']) {
     if (isset($_FILES['import_file']['tmp_name']) && !empty($_FILES['import_file']['tmp_name'])) {
@@ -68,27 +68,27 @@ if ($_POST['formSent']) {
                 if (count($root->Users->User) > 0) {
 
                     // Creating/updating users from <Sessions> <Users> base node.
-                    foreach ($root->Users->User as $node_user) {       
+                    foreach ($root->Users->User as $node_user) {
                         $username = $username_old = trim(api_utf8_decode($node_user->Username));
-                        if (UserManager::is_username_available($username)) {                            
+                        if (UserManager::is_username_available($username)) {
                             $password = api_utf8_decode($node_user->Password);
                             if (empty($password)) {
                                 $password = api_generate_password();
                             }
                             switch ($node_user->Status) {
-                                case 'student' : 
-                                    $status = 5; 
+                                case 'student' :
+                                    $status = 5;
                                     break;
-                                case 'teacher' : 
-                                    $status = 1; 
+                                case 'teacher' :
+                                    $status = 1;
                                     break;
-                                default : 
-                                    $status = 5; 
+                                default :
+                                    $status = 5;
                                     $error_message .= get_lang('StudentStatusWasGivenTo').' : '.$username.'<br />';
                             }
-                                                        
+
                             $result = UserManager::create_user(
-                                    api_utf8_decode($node_user->Firstname), 
+                                    api_utf8_decode($node_user->Firstname),
                                     api_utf8_decode($node_user->Lastname),
                                     $status,
                                     api_utf8_decode($node_user->Email),
@@ -105,7 +105,7 @@ if ($_POST['formSent']) {
                                     null,
                                     null,
                                     $send_mail
-                                    );                            
+                                    );
                         } else {
                             $lastname = trim(api_utf8_decode($node_user->Lastname));
                             $firstname = trim(api_utf8_decode($node_user->Firstname));
@@ -136,28 +136,28 @@ if ($_POST['formSent']) {
                 }
 
                 // Creating  courses from <Sessions> <Courses> base node.
-                
+
                 if (count($root->Courses->Course) > 0) {
                     foreach ($root->Courses->Course as $courseNode) {
-                        
+
                         $params = array();
                         if (empty($courseNode->CourseTitle)) {
                             $params['title']            = api_utf8_decode($courseNode->CourseCode);
                         } else {
                             $params['title']            = api_utf8_decode($courseNode->CourseTitle);
                         }
-                        $params['wanted_code']      = api_utf8_decode($courseNode->CourseCode);         
+                        $params['wanted_code']      = api_utf8_decode($courseNode->CourseCode);
                         $params['tutor_name']       = null;
-                        $params['course_category']  = null;                    
+                        $params['course_category']  = null;
                         $params['course_language']  = api_get_valid_language(api_utf8_decode($courseNode->CourseLanguage));
                         $params['user_id']          = api_get_user_id();
-                        
+
                         // Looking up for the teacher.
                         $username = trim(api_utf8_decode($courseNode->CourseTeacher));
                         $sql = "SELECT user_id, lastname, firstname FROM $tbl_user WHERE username='$username'";
                         $rs = Database::query($sql);
                         list($user_id, $lastname, $firstname) = Database::fetch_array($rs);
-                                               
+
                         $params['teachers']  = $user_id;
                         CourseManager::create_course($params);
                     }
@@ -185,7 +185,7 @@ if ($_POST['formSent']) {
                         }
 
                         $date_start = trim(api_utf8_decode($node_session->DateStart)); // Just in case - encoding conversion.
-                        $date_end = trim(api_utf8_decode($node_session->DateEnd));                                                
+                        $date_end = trim(api_utf8_decode($node_session->DateEnd));
 
                         $visibility = trim(api_utf8_decode($node_session->Visibility));
                         $session_category_id = trim(api_utf8_decode($node_session->SessionCategory));
@@ -208,7 +208,7 @@ if ($_POST['formSent']) {
                                     $session_name .= $suffix;
                                 }
                             }
-                            
+
                             $params = array (
                                 'id_coach' => $coach_id,
                                 'visibility' => $visibility,
@@ -218,13 +218,13 @@ if ($_POST['formSent']) {
                                 'session_category_id' => $session_category_id,
                                 'session_admin_id' => api_get_user_id(),
                             );
-                            $session_id = SessionManager::add($params);                            
+                            $session_id = SessionManager::add($params);
                             $session_counter++;
 
                         } else {
                             // Update the session if it is needed.
                             $my_session_result = SessionManager::get_session_by_name($session_name);
-                            
+
                             if ($my_session_result === false) {
                                 $params = array (
                                     'id_coach' => $coach_id,
@@ -235,10 +235,10 @@ if ($_POST['formSent']) {
                                     'session_category_id' => $session_category_id,
                                     'session_admin_id' => api_get_user_id(),
                                 );
-                                $session_id = SessionManager::add($params);                                      
+                                $session_id = SessionManager::add($params);
                                 $session_counter++;
                             } else {
-                                
+
                                 $params = array (
                                     'id' => $my_session_result['id'],
                                     'id_coach' => $coach_id,
@@ -249,7 +249,7 @@ if ($_POST['formSent']) {
                                     'session_category_id' => $session_category_id,
                                     'session_admin_id' => api_get_user_id(),
                                 );
-                                SessionManager::update($params);                                
+                                SessionManager::update($params);
                                 $session_id = Database::query("SELECT id FROM $tbl_session WHERE name='$session_name'");
                                 list($session_id) = Database::fetch_array($session_id);
                                 Database::query("DELETE FROM $tbl_session_user WHERE id_session='$session_id'");
@@ -259,8 +259,8 @@ if ($_POST['formSent']) {
                         }
 
                         // Associate the session with access_url.
-                        global $_configuration;                        
-                        if ($_configuration['multiple_access_urls']) {                            
+                        global $_configuration;
+                        if ($_configuration['multiple_access_urls']) {
                             $access_url_id = api_get_current_access_url_id();
                             UrlManager::add_session_to_url($session_id, $access_url_id);
                         } else {
@@ -493,7 +493,7 @@ if ($_POST['formSent']) {
                                 $session_name .= $suffix;
                             }
                         }
-                        
+
                         $params = array (
                             'id_coach' => $coach_id,
                             'visibility' => $visibility,
@@ -503,7 +503,7 @@ if ($_POST['formSent']) {
                             'session_category_id' => $session_category_id,
                             'session_admin_id' => api_get_user_id(),
                         );
-                        $session_id = SessionManager::add($params); 
+                        $session_id = SessionManager::add($params);
                         $session_counter++;
                     } else {
                         $my_session_result = SessionManager::get_session_by_name($session_name);
@@ -517,7 +517,7 @@ if ($_POST['formSent']) {
                                 'session_category_id' => $session_category_id,
                                 'session_admin_id' => api_get_user_id(),
                             );
-                            $session_id = SessionManager::add($params); 
+                            $session_id = SessionManager::add($params);
                         } else {
                             $session_id = $my_session_result['id'];
                             $params = array (
@@ -582,18 +582,18 @@ if ($_POST['formSent']) {
                                     id_session='$session_id'";
                             $rs_course = Database::query($sql_course);
                             $course_counter++;
-                            
+
                             $course_split = array();
                             $pattern = "/\[(.*?)\]/";
                             preg_match_all($pattern, $course, $matches);
                             if (isset($matches[1])) {
-                                $course_coaches = $matches[1][0]; 
+                                $course_coaches = $matches[1][0];
                                 $course_users   = $matches[1][1];
                             }
-                            
+
                             $course_users   = explode(',', $course_users);
                             $course_coaches = explode(',', $course_coaches);
-                                                        
+
                             // Adding coaches to session course user
                             if (!empty($course_coaches)) {
                                 foreach ($course_coaches as $course_coach) {
@@ -612,7 +612,7 @@ if ($_POST['formSent']) {
                             }
 
                             $users_in_course_counter = 0;
-                            
+
                             // Adding the relationship "Session - Course - User".
                             foreach ($course_users as $user) {
                                 $user_id = UserManager::get_user_id_from_username($user);

+ 27 - 27
main/admin/session_list.php → main/session/session_list.php

@@ -13,11 +13,13 @@ $cidReset = true;
 require_once '../inc/global.inc.php';
 $this_section = SECTION_PLATFORM_ADMIN;
 
-api_protect_admin_script(true);
+//api_protect_admin_script(true);
+//@todo use filters
+//$app['controllers_factory']->before($app['index.controller']->security());
+SessionManager::protect_session_edit();
 
 //Add the JS needed to use the jqgrid
 $htmlHeadXtra[] = api_get_jqgrid_js();
-
 $htmlHeadXtra[] = api_get_js('json-js/json2.js');
 $htmlHeadXtra[] = api_get_js('date/date.js');
 
@@ -29,15 +31,15 @@ $list_type = isset($_REQUEST['list_type']) ? $_REQUEST['list_type'] : 'simple';
 
 if ($action == 'delete') {
 	SessionManager::delete_session($idChecked);
-	header('Location: session_list.php');
+	header('Location: '.api_get_path(WEB_CODE_PATH).'session/session_list.php');
 	exit();
 } elseif ($action == 'copy') {
 	SessionManager::copy_session($idChecked, true, false);
-    header('Location: session_list.php');
+    header('Location: '.api_get_path(WEB_CODE_PATH).'session/session_list.php');
     exit();
 }
 
-$interbreadcrumb[] = array("url" => "index.php","name" => get_lang('PlatformAdmin'));
+$interbreadcrumb[] = array("url" => "index.php", "name" => get_lang('Sessions'));
 
 $tool_name = get_lang('SessionList');
 Display::display_header($tool_name);
@@ -71,26 +73,27 @@ $columns = $result['columns'];
 $column_model = $result['column_model'];
 
 $extra_params['postData'] =array (
-                    'filters' => array(
-                                        "groupOp" => "AND",
-                                        "rules" => $result['rules'],
-                                        /*array(
-                                            array( "field" => "display_start_date", "op" => "gt", "data" => ""),
-                                            array( "field" => "display_end_date", "op" => "gt", "data" => "")
-                                        ),*/
-                                        //'groups' => $groups
-                                )
+    'filters' => array(
+        "groupOp" => "AND",
+        "rules" => $result['rules'],
+        /*array(
+            array( "field" => "display_start_date", "op" => "gt", "data" => ""),
+            array( "field" => "display_end_date", "op" => "gt", "data" => "")
+        ),*/
+        //'groups' => $groups
+    )
 );
 
 //With this function we can add actions to the jgrid (edit, delete, etc)
-$action_links = 'function action_formatter(cellvalue, options, rowObject) {
-                         return \'<a href="session_add.php?page=resume_session.php&id=\'+options.rowId+\'">'.Display::return_icon('edit.png',get_lang('Edit'),'',ICON_SIZE_SMALL).'</a>'.
-                         '&nbsp;<a href="add_users_to_session.php?page=session_list.php&id_session=\'+options.rowId+\'">'.Display::return_icon('user_subscribe_session.png',get_lang('SubscribeUsersToSession'),'',ICON_SIZE_SMALL).'</a>'.
-                         '&nbsp;<a href="add_courses_to_session.php?page=session_list.php&id_session=\'+options.rowId+\'">'.Display::return_icon('courses_to_session.png',get_lang('SubscribeCoursesToSession'),'',ICON_SIZE_SMALL).'</a>'.
-                         '&nbsp;<a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES))."\'".')) return false;"  href="session_list.php?action=copy&idChecked=\'+options.rowId+\'">'.Display::return_icon('copy.png',get_lang('Copy'),'',ICON_SIZE_SMALL).'</a>'.
-                         '&nbsp;<a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES))."\'".')) return false;"  href="session_list.php?action=delete&idChecked=\'+options.rowId+\'">'.Display::return_icon('delete.png',get_lang('Delete'),'',ICON_SIZE_SMALL).'</a>'.
-                         '\';
-                 }';
+$action_links = '
+function action_formatter(cellvalue, options, rowObject) {
+    return \'<a href="session_add.php?page=resume_session.php&id=\'+options.rowId+\'">'.Display::return_icon('edit.png',get_lang('Edit'),'',ICON_SIZE_SMALL).'</a>'.
+    '&nbsp;<a href="add_users_to_session.php?page=session_list.php&id_session=\'+options.rowId+\'">'.Display::return_icon('user_subscribe_session.png',get_lang('SubscribeUsersToSession'),'',ICON_SIZE_SMALL).'</a>'.
+    '&nbsp;<a href="add_courses_to_session.php?page=session_list.php&id_session=\'+options.rowId+\'">'.Display::return_icon('courses_to_session.png',get_lang('SubscribeCoursesToSession'),'',ICON_SIZE_SMALL).'</a>'.
+    '&nbsp;<a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES))."\'".')) return false;"  href="session_list.php?action=copy&idChecked=\'+options.rowId+\'">'.Display::return_icon('copy.png',get_lang('Copy'),'',ICON_SIZE_SMALL).'</a>'.
+    '&nbsp;<a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES))."\'".')) return false;"  href="session_list.php?action=delete&idChecked=\'+options.rowId+\'">'.Display::return_icon('delete.png',get_lang('Delete'),'',ICON_SIZE_SMALL).'</a>'.
+    '\';
+}';
 $url_select = api_get_path(WEB_AJAX_PATH).'extra_field.ajax.php?1=1';
 ?>
 <script>
@@ -135,7 +138,6 @@ var second_filters = [];
 
 $(function() {
 
-
     date_pick_today = function(elem) {
         $(elem).datetimepicker({dateFormat: "yy-mm-dd"});
         $(elem).datetimepicker('setDate', (new Date()));
@@ -264,13 +266,11 @@ $(function() {
             $(this).find('option:first').attr('selected', 'selected');
         });
     });*/
-
-
 });
 </script>
 <?php
 echo '<div class="actions">';
-echo '<a href="'.api_get_path(WEB_CODE_PATH).'admin/session_add.php">'.Display::return_icon('new_session.png',get_lang('AddSession'),'',ICON_SIZE_MEDIUM).'</a>';
+echo '<a href="'.api_get_path(WEB_CODE_PATH).'session/session_add.php">'.Display::return_icon('new_session.png',get_lang('AddSession'),'',ICON_SIZE_MEDIUM).'</a>';
 echo '<a href="'.api_get_path(WEB_CODE_PATH).'admin/add_many_session_to_category.php">'.Display::return_icon('session_to_category.png',get_lang('AddSessionsInCategories'),'',ICON_SIZE_MEDIUM).'</a>';
 echo '<a href="'.api_get_path(WEB_CODE_PATH).'admin/session_category_list.php">'.Display::return_icon('folder.png',get_lang('ListSessionCategory'),'',ICON_SIZE_MEDIUM).'</a>';
 if ($list_type == 'complete') {
@@ -304,4 +304,4 @@ $form->addElement('select', 'course', get_lang('Course'), $options);
 $form->addElement('button', 'submit', get_lang('Search'), array('id' => 'search_button'));
 
 echo Display::grid_html('sessions');
-Display::display_footer();
+Display::display_footer();

+ 7 - 0
src/ChamiloLMS/Controller/IndexController.php

@@ -44,6 +44,13 @@ class IndexController// extends Controller
         return $app->redirect($app['url_generator']->generator('index'));
     }
 
+    function security() {
+        return false;
+        if (api_is_allowed_to_edit()) {
+            return true;
+        }
+    }
+
     /**
      * @param \Silex\Application $app
      *