'index.php',"name" => get_lang('PlatformAdmin')); $interbreadcrumb[]=array('url' => api_get_self(),"name" => get_lang('SessionList')); // Database Table Definitions $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session_rel_class = Database::get_main_table(TABLE_MAIN_SESSION_CLASS); $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); $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); $tbl_class = Database::get_main_table(TABLE_MAIN_CLASS); $tbl_class_user = Database::get_main_table(TABLE_MAIN_CLASS_USER); $tbl_session_rel_etape = "session_rel_etape"; $id_session=intval($_GET['id_session']); $formSent=0; $errorMsg=$firstLetterUser=$firstLetterSession=''; $UserList=$SessionList=array(); $users=$sessions=array(); $noPHP_SELF=true; $page=intval($_GET['page']); $action=$_REQUEST['action']; $sort=in_array($_GET['sort'],array('name','nbr_courses','date_start','date_end'))?$_GET['sort']:'name'; $idChecked = $_REQUEST['idChecked']; $annee = intval($_GET['annee']); $composante = $_GET['composante']; $etape = $_GET['etape']; if (isset($id_session) && $id_session!="") { $tool_name = get_lang('LDAPImportUsersSteps');; Display::display_header($tool_name); //api_display_tool_title($tool_name); if (isset($action) && ($action=="add")) { // ICI Selection ETAPE a partir de LDAP // form1 annee = 0; composante= 0 etape = 0 if ($annee == "" && $composante == "" && $etape == "") { echo '
'; echo '

'.get_lang('EnterStepToAddToYourSession').''.get_lang('EnterStepToAddToYourSession').'

'; echo ''.get_lang('ToDoThisYouMustEnterYearDepartmentAndStep').'
'; echo get_lang('FollowEachOfTheseStepsStepByStep').'
'; echo '

'; echo ''.sprintf(get_lang('RegistrationYearExample'),date('Y'),date('Y'),date('Y')+1).' :'; echo '
'; echo ''; echo ''; echo ''; echo '
'; echo '
'; } // form 2 annee != 0; composante= 0 etape = 0 elseif ($annee <> "" && $composante == "" && $etape == "") { $ds = ldap_connect($ldap_host, $ldap_port) or die(get_lang('LDAPConnectionError')); ldap_set_version($ds); if ($ds) { $r = false; $res = ldap_handle_bind($ds, $r); //$sr = @ ldap_search($ds, "o=groups,$ldap_basedn", "(&(description=etape*)(cn=*$annee))", array ('cn')); //$sr = @ ldap_search($ds, "ou=$annee, ou=diploma, o=paris1, $ldap_basedn", "ou=02*", array ('description')); //$sr = @ ldap_search($ds, "ou=structures, o=paris1, $ldap_basedn", "businessCategory=pedagogy", array ('ou','description')); $sr = @ ldap_search($ds, "$ldap_basedn", "", array ('ou','description')); // "ou=2006,ou=diploma,o=Paris1,dc=univ-paris1,dc=fr $info = ldap_get_entries($ds, $sr); for ($i = 0; $i < $info['count']; $i ++) { $composante[$info[$i]['ou'][0]] = iconv('utf-8',api_get_setting('platform_charset'), $info[$i]['description'][0]); } $oucompotab3=$composante; echo '
'; echo '
'; echo '

'.get_lang('SelectDepartment').''.get_lang('SelectDepartment').'

'; echo '
'; echo ''.get_lang('RegistrationYear').' : '; echo ''; echo ''.get_lang('Department').' : '; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo ''; echo '
'; ldap_close($ds); } echo '
'; echo '
'; echo ''.get_lang('BackToNewSearch').''; echo '
'; echo '
'; } // form3 :annee!=0composante=0etape=0 elseif ($annee <> "" && $composante <> "" && $etape == "") { echo '
'; echo '

'.get_lang('SearchResults').''.get_lang('SearchResults').'

'; $ds = ldap_connect($ldap_host, $ldap_port); ldap_set_version($ds); if ($ds) { $r = false; $res = ldap_handle_bind($ds, $r); //$sr = @ ldap_search($ds, "ou=$annee, ou=diploma, o=paris1, $ldap_basedn", "seeAlso=ou=$composante,ou=structures,o=Paris1,$ldap_basedn", array ('ou','description')); $sr = @ ldap_search($ds, "ou=$annee, ou=diploma, $ldap_basedn", "seeAlso=ou=$composante,ou=structures,$ldap_basedn", array ('ou','description')); //echo "Le nombre de resultats est : ".ldap_count_entries($ds,$sr)."

"; echo '
'; $info = ldap_get_entries($ds, $sr); for ($i = 0; $i <= $info['count']; $i ++) { $description = $info[$i]['description']; $ouetapetab[$i] = $description[0]; $description2 = $info[$i]['ou']; $ouetapetab2[$i] = $description2[0]; } asort($ouetapetab); reset($ouetapetab); echo '

'; echo ''.get_lang('RegistrationYear').' : '; echo '

'; echo ''.get_lang('Department').' :'; echo '
'; echo '

'.get_lang('SelectStepAcademicYear').'

'; echo '
'; echo ''.get_lang('Step').' : '; echo ''; echo ''; echo '
'; echo ''; echo ''; echo '
'; ldap_close($ds); } else { // echo "

Unable to connect to LDAP server

"; } echo '
'; echo '
'; echo '
'; echo ''.get_lang('BackToNewSearch').''; echo '
'; echo ''; echo '
'; } } else { $id_session = intval($id_session); $annee = intval($annee); $composante = Database::escape_string($composante); // Lister les etapes concernant la session : table // Ajout de l'etape if ($annee <> "" && $composante <> "" && $etape <> "") { $ds = ldap_connect($ldap_host, $ldap_port); ldap_set_version($ds); if ($ds) { $r = false; $res = ldap_handle_bind($ds, $r); //$sr = @ ldap_search($ds, "ou=$annee, ou=diploma, o=paris1, $ldap_basedn", "ou=$etape", array ('ou','description')); $sr = @ ldap_search($ds, "$ldap_basedn", "ou=$etape", array ('ou','description')); //echo "Le nombre de resultats est : ".ldap_count_entries($ds,$sr)."

"; $info = ldap_get_entries($ds, $sr); if ($info['count']>0) { // Ajout de l'Etape a la session $description=Database::escape_string(iconv('utf-8',api_get_setting('platform_charset'), $info[0]['description'][0])); $sql = "INSERT IGNORE INTO $tbl_session_rel_etape " . "(id_session,code_etape,etape_description,code_ufr,annee) " . "VALUES " . "('$id_session','".Database::escape_string($info[0]["ou"][0])."','".$description."','$composante','$annee')"; if (api_sql_query($sql,__FILE__,__LINE__)) Display :: display_normal_message(get_lang('Step').": $annee, $composante, $description ".get_lang('SomethingFemininAddedSuccessfully')); else Display :: display_error_message(get_lang('ErrorExistingStep')); } else Display :: display_error_message(get_lang('ErrorStepNotFoundOnLDAP')); } else Display :: display_error_message(get_lang('LDAPConnectionError')); } $sql = 'SELECT name, nbr_courses, nbr_users, nbr_classes, ' . 'DATE_FORMAT(date_start,"%d-%m-%Y") as date_start, ' . 'DATE_FORMAT(date_end,"%d-%m-%Y") as date_end, lastname, firstname, username FROM '.$tbl_session.' LEFT JOIN '.$tbl_user.' ON id_coach = user_id WHERE '.$tbl_session.'.id='.$id_session; $rs = api_sql_query($sql, __FILE__, __LINE__); $session = api_store_result($rs); $session = $session[0]; if (isset($action) && ($action=="delete")) { $idChecked = $_GET['idChecked']; if(is_array($idChecked)) $idChecked="'".implode("','",$idChecked)."'"; $sql = "DELETE FROM $tbl_session_rel_etape " . "WHERE id_session='$id_session' " . "AND code_etape IN($idChecked)"; api_sql_query($sql,__FILE__,__LINE__); if (mysql_affected_rows()>0) Display :: display_normal_message(get_lang('StepDeletedSuccessfully')); else Display :: display_error_message(get_lang('DeleteError')); } else if (isset($action) && ($action=='deleteusers')) { $idChecked = $_GET['idChecked']; if(is_array($idChecked)) { $idChecked=Database::escape_string("'".implode("','",$idChecked)."'"); } $sql = 'SELECT '.$tbl_user.'.user_id, lastname, firstname, username, official_code FROM '.$tbl_user.' INNER JOIN '.$tbl_session_rel_user.' ON '.$tbl_user.'.user_id = '.$tbl_session_rel_user.'.id_user AND '.$tbl_session_rel_user.'.id_session = '.$id_session.' WHERE official_code IN('.$idChecked.') ORDER BY official_code, lastname, firstname'; $result=api_sql_query($sql,__FILE__,__LINE__); $users=api_store_result($result); $UserList=array(); foreach($users as $user){ $UserList[]=$user['user_id']; } // On supprime toutes les relations de l'utilisateur $result=api_sql_query("SELECT course_code FROM $tbl_session_rel_course " . "WHERE id_session='$id_session'",__FILE__,__LINE__); $CourseList=array(); while($row=Database::fetch_array($result)) { $CourseList[]=$row['course_code']; } foreach($CourseList as $enreg_course) { foreach($UserList as $enreg_user) { api_sql_query("DELETE IGNORE FROM $tbl_session_rel_course_rel_user " . "WHERE id_user='$enreg_user'",__FILE__,__LINE__); } $sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_course_rel_user " . "WHERE id_session='$id_session' AND course_code='$enreg_course'"; $rs = api_sql_query($sql, __FILE__, __LINE__); list($nbr_users) = Database::fetch_array($rs); api_sql_query("UPDATE $tbl_session_rel_course " . "SET nbr_users=$nbr_users " . "WHERE id_session='$id_session' " . "AND course_code='$enreg_course'",__FILE__,__LINE__); } foreach($UserList as $enreg_user){ api_sql_query("DELETE IGNORE FROM $tbl_session_rel_user " . "WHERE id_user='$enreg_user'",__FILE__,__LINE__); } // updating number of users in the session $sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_user " . "WHERE id_session='$id_session'"; $rs = api_sql_query($sql, __FILE__, __LINE__); list($nbr_users) = Database::fetch_array($rs); api_sql_query("UPDATE $tbl_session SET nbr_users=$nbr_users " . "WHERE id='$id_session'",__FILE__,__LINE__); foreach($UserList as $enreg_user){ if (UserManager::can_delete_user($enreg_user)) UserManager::delete_user($enreg_user); } Display :: display_normal_message(get_lang('StepUsersDeletedSuccessfully')); } // Importing periods/steps users into the session if (isset($action) && ($action=='import')) { // id_session // Parse des code etape de la session $sql = "SELECT id_session, code_etape, etape_description, code_ufr, annee FROM $tbl_session_rel_etape WHERE id_session='$id_session' ORDER BY code_ufr, code_etape"; $result = api_sql_query($sql); $ds = ldap_connect($ldap_host, $ldap_port) or die(get_lang('LDAPConnectionError')); ldap_set_version($ds); // Import des utilisateurs des etapes dans la session if ($ds) $r = false; $res = ldap_handle_bind($ds, $r); $UserList=array(); while($row = Database::fetch_array($result)){ $annee = $row['annee']; $code_ufr = $row['code_ufr']; $etape = $row['code_etape']; // LDAP Querry // edupersonorgunitdn=ou=12CI1,ou=2006,ou=diploma,o=Paris1,dc=univ-paris1,dc=fr //$sr = @ ldap_search($ds, "ou=people,$ldap_basedn", "edupersonorgunitdn=ou=$etape,ou=$annee,ou=diploma,o=Paris1,$ldap_basedn"); $sr = @ ldap_search($ds, "ou=people,$ldap_basedn", "edupersonorgunitdn=ou=$etape,ou=$annee,ou=diploma,$ldap_basedn"); $info = ldap_get_entries($ds, $sr); for ($key = 0; $key < $info["count"]; $key ++) { $lastname = iconv('utf-8', api_get_setting('platform_charset'), $info[$key]["sn"][0]); $firstname = iconv('utf-8', api_get_setting('platform_charset'), $info[$key]["givenname"][0]); $email = $info[$key]["mail"][0]; // Get uid from dn $dn_array=ldap_explode_dn($info[$key]["dn"],1); $username = $dn_array[0]; // uid is first key $outab[] = $info[$key]["edupersonprimaryaffiliation"][0]; // Ici "student" $val = ldap_get_values_len($ds, $entry, "userPassword"); $password = $val[0]; // Pour faciliter la gestion on ajoute le code "etape-annee" $official_code=$etape."-".$annee; $auth_source="cas"; // Pas de date d'expiration d'etudiant (a recuperer par rapport au shadow expire LDAP) $expiration_date='0000-00-00 00:00:00'; $active=1; // Ajout de l'utilisateur if (UserManager::is_username_available($username)) $user_id = UserManager::create_user($firstname,$lastname,$status,$email,$username,$password,$official_code,api_get_setting('platformLanguage'),$phone,$picture_uri,$auth_source,$expiration_date,$active); else{ $user = UserManager::get_user_info($username); $user_id=$user['user_id']; UserManager::update_user($user_id, $firstname, $lastname, $username, null, null, $email, $status, $official_code, $phone, $picture_uri, $expiration_date, $active); } $UserList[]=$user_id; } } // Une fois les utilisateurs importer dans la base des utilisateurs, on peux les affecter a la session $result=api_sql_query("SELECT course_code FROM $tbl_session_rel_course WHERE id_session='$id_session'",__FILE__,__LINE__); $CourseList=array(); while($row=Database::fetch_array($result)) { $CourseList[]=$row['course_code']; } foreach($CourseList as $enreg_course) { // On ajoute la relation entre l'utilisateur et le cours foreach($UserList as $enreg_user) { api_sql_query("INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session,course_code,id_user) VALUES('$id_session','$enreg_course','$enreg_user')",__FILE__,__LINE__); } $sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code='$enreg_course'"; $rs = api_sql_query($sql, __FILE__, __LINE__); list($nbr_users) = Database::fetch_array($rs); api_sql_query("UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users WHERE id_session='$id_session' AND course_code='$enreg_course'",__FILE__,__LINE__); } // On ajoute la relation entre l'utilisateur et la session foreach($UserList as $enreg_user){ api_sql_query("INSERT IGNORE INTO $tbl_session_rel_user(id_session, id_user) VALUES('$id_session','$enreg_user')",__FILE__,__LINE__); } $sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_user WHERE id_session='$id_session'"; $rs = api_sql_query($sql, __FILE__, __LINE__); list($nbr_users) = Database::fetch_array($rs); api_sql_query("UPDATE $tbl_session SET nbr_users=$nbr_users WHERE id='$id_session'",__FILE__,__LINE__); } ?>
<?php echo get_lang('Edit'); ?>
:
:
:
'; } else { foreach($etapes as $etape){ echo ' '; } } ?>
<?php echo get_lang('AddStep');?>
'.get_lang('NoStepForThisSession').'
'.$etape['code_ufr'].' ('.$etape['annee'].') '.$etape['code_etape'].' '.$etape['etape_description'].' ' . ''.get_lang('Delete').'' . ' ' . '' . '



'; } else { $sql = 'SELECT '.$tbl_user.'.user_id, lastname, firstname, username, official_code FROM '.$tbl_user.' INNER JOIN '.$tbl_session_rel_user.' ON '.$tbl_user.'.user_id = '.$tbl_session_rel_user.'.id_user AND '.$tbl_session_rel_user.'.id_session = '.$id_session.' ORDER BY official_code, lastname, firstname'; $result=api_sql_query($sql,__FILE__,__LINE__); $users=api_store_result($result); foreach($users as $user){ echo ''; } } echo '
<?php echo get_lang('Edit');?>   <?php echo get_lang('AddLDAPUsers');?>
'.get_lang('NoUserInThisSession').'
'.$user['official_code'].' '.$user['lastname'].' '.$user['firstname'].' ('.$user['username'].') ' . ''.get_lang('Reporting').'' . '
'; } } else { $limit=20; $from=$page * $limit; $result=api_sql_query("SELECT id,name,nbr_courses,date_start,date_end " . " FROM $tbl_session ".(empty($_POST['keyword']) ? "" : "WHERE name LIKE '%".Database::escape_string($_POST['keyword'])."%'")." " . " ORDER BY $sort LIMIT $from,".($limit+1),__FILE__,__LINE__); $Sessions=api_store_result($result); $nbr_results=count($Sessions); //$tool_name = "Import LDAP session"; //$interbreadcrumb[]=array("url" => "index.php","name" => get_lang('AdministrationTools')); Display::display_header($tool_name); ?>
>
| $limit) { ?>

$enreg) { if($key == $limit) { break; } $sql = 'SELECT COUNT(course_code) FROM '.$tbl_session_rel_course.' ' . 'WHERE id_session='.intval($enreg['id']); $rs = api_sql_query($sql, __FILE__, __LINE__); list($nb_courses) = Database::fetch_array($rs); ?>
 
cours

| $limit) { ?>