Added portal sessions limit management - only activates when set to something different from 0 - refs #4792

skala
Yannick Warnier 13 years ago
parent 5a39be935d
commit 3de61a1f8a
  1. 23
      main/inc/lib/sessionmanager.lib.php

@ -56,6 +56,19 @@ class SessionManager {
* @return mixed Session ID on success, error message otherwise
**/
public static function create_session($sname,$syear_start,$smonth_start,$sday_start,$syear_end,$smonth_end,$sday_end,$snb_days_acess_before,$snb_days_acess_after, $nolimit,$coach_username, $id_session_category,$id_visibility, $start_limit = true, $end_limit = true, $fix_name = false) {
global $_configuration;
//Check portal limits
$access_url_id = 1;
if (api_get_multiple_access_url()) {
$access_url_id = api_get_current_access_url_id();
}
if ($_configuration[$access_url_id]['hosting_limit_sessions'] > 0) {
$num = self::count_sessions();
if ($num >= $_configuration[$access_url_id]['hosting_limit_sessions']) {
return get_lang('PortalSessionsLimitReached');
}
}
$name = Database::escape_string(trim($sname));
$year_start = intval($syear_start);
$month_start = intval($smonth_start);
@ -1757,4 +1770,14 @@ class SessionManager {
}
return false;
}
/**
*
*/
public function count_sessions() {
$session_table = Database::get_main_table(TABLE_MAIN_SESSION);
$sql = "SELECT count(id) FROM $session_table";
$res = Database::query($sql);
$row = Database::fetch_array($res);
return $row[0];
}
}

Loading…
Cancel
Save