From: x2000habouzit Date: Thu, 13 Jul 2006 21:37:41 +0000 (+0000) Subject: move some functions into platal.php X-Git-Tag: xorg/0.9.11~434 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=5de0b7e1221d503227b2008143e1f5c4dee795e1;p=platal.git move some functions into platal.php always load 'core' module. git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@466 839d8a87-29fc-0310-9880-83ba4fa771e5 --- diff --git a/classes/Platal.php b/classes/Platal.php index 858c8ac..1594acd 100644 --- a/classes/Platal.php +++ b/classes/Platal.php @@ -28,7 +28,9 @@ class Platal { var $__mods; var $__hooks; + var $__usens; + var $ns; var $path; var $argv; @@ -39,14 +41,21 @@ class Platal $this->__mods = array(); $this->__hooks = array(); + $this->__usens = false; + $this->ns = ''; + array_unshift($modules, 'core'); foreach ($modules as $module) { - $m =& PLModule::factory($this, $module); - $this->__mods[$module] =& $m; + $this->__mods[$module] = $m = PLModule::factory($this, $module); $this->__hooks += $m->handlers(); } } + function use_namespace() + { + $this->__usens = true; + } + function find_hook() { $p = $this->path; @@ -79,6 +88,13 @@ class Platal $hook = $this->find_hook(); if (is_null($hook)) { + if ($this->__usens) { + $i = strpos($this->path, '/'); + if ($i) { + $this->ns = $this->path; + $this->path = 'index'; + } + } return PL_NOT_FOUND; } diff --git a/htdocs/index.php b/htdocs/index.php index fba867c..5021d3e 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -24,9 +24,9 @@ require_once 'xorg.inc.php'; require_once dirname(__FILE__).'/../classes/Platal.php'; require_once dirname(__FILE__).'/../classes/PLModule.php'; -$platal = new Platal('auth', 'banana', 'carnet', 'core', 'email', 'events', - 'geoloc', 'marketing', 'payment', 'platal', 'profile', - 'register', 'search', 'stats', 'trezo'); +$platal = new Platal('auth', 'banana', 'carnet', 'email', 'events', 'geoloc', + 'marketing', 'payment', 'platal', 'profile', 'register', + 'search', 'stats', 'trezo'); $platal->run(); ?> diff --git a/modules/core.php b/modules/core.php index 0ce18ee..c6a5911 100644 --- a/modules/core.php +++ b/modules/core.php @@ -19,20 +19,6 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ -function bugize($list) -{ - $list = split(',', $list); - $ans = array(); - - foreach ($list as $bug) { - $clean = str_replace('#', '', $bug); - $ans[] = "$bug"; - } - - return join(',', $ans); -} - - class CoreModule extends PLModule { function handlers() @@ -40,9 +26,6 @@ class CoreModule extends PLModule return array( '403' => $this->make_hook('403', AUTH_PUBLIC), '404' => $this->make_hook('404', AUTH_PUBLIC), - 'exit' => $this->make_hook('exit', AUTH_PUBLIC), - 'cacert.pem' => $this->make_hook('cacert', AUTH_PUBLIC), - 'changelog' => $this->make_hook('changelog', AUTH_PUBLIC), 'purge_cache' => $this->make_hook('purge_cache', AUTH_COOKIE, 'admin'), 'valid.html' => $this->make_hook('valid', AUTH_PUBLIC), @@ -64,69 +47,6 @@ class CoreModule extends PLModule return PL_OK; } - function handler_cacert(&$page) - { - $data = file_get_contents('/etc/ssl/xorgCA/cacert.pem'); - header('Content-Type: application/x-x509-ca-cert'); - header('Content-Length: '.strlen($data)); - echo $data; - exit; - } - - function handler_changelog(&$page) - { - $page->changeTpl('changeLog.tpl'); - - $clog = htmlentities(file_get_contents(dirname(__FILE__).'/../ChangeLog')); - $clog = preg_replace('!(#[0-9]+(,[0-9]+)*)!e', 'bugize("\1")', $clog); - $page->assign('ChangeLog', $clog); - } - - function handler_exit(&$page, $level = null) - { - if (Session::has('suid')) { - if (Session::has('suid')) { - $a4l = Session::get('forlife'); - $suid = Session::getMixed('suid'); - $log = Session::getMixed('log'); - $log->log("suid_stop", Session::get('forlife') . " by " . $suid['forlife']); - $_SESSION = $suid; - Session::kill('suid'); - redirect($globals->baseurl.'/admin/utilisateurs.php?login='.$a4l); - } else { - redirect("events"); - } - } - - if ($level == 'forget' || $level == 'forgetall') { - setcookie('ORGaccess', '', time() - 3600, '/', '', 0); - Cookie::kill('ORGaccess'); - if (isset($_SESSION['log'])) - $_SESSION['log']->log("cookie_off"); - } - - if ($level == 'forgetuid' || $level == 'forgetall') { - setcookie('ORGuid', '', time() - 3600, '/', '', 0); - Cookie::kill('ORGuid'); - setcookie('ORGdomain', '', time() - 3600, '/', '', 0); - Cookie::kill('ORGdomain'); - } - - if (isset($_SESSION['log'])) { - $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; - $_SESSION['log']->log('deconnexion',$ref); - } - - XorgSession::destroy(); - - if (Get::has('redirect')) { - redirect(rawurldecode(Get::get('redirect'))); - } else { - $page->changeTpl('exit.tpl'); - } - return PL_OK; - } - function handler_403(&$page) { header('HTTP/1.0 403 Forbidden'); diff --git a/modules/platal.php b/modules/platal.php index e8f2acd..737d5ee 100644 --- a/modules/platal.php +++ b/modules/platal.php @@ -19,11 +19,28 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ +function bugize($list) +{ + $list = split(',', $list); + $ans = array(); + + foreach ($list as $bug) { + $clean = str_replace('#', '', $bug); + $ans[] = "$bug"; + } + + return join(',', $ans); +} + + class PlatalModule extends PLModule { function handlers() { return array( + 'cacert.pem' => $this->make_hook('cacert', AUTH_PUBLIC), + 'changelog' => $this->make_hook('changelog', AUTH_PUBLIC), + // Preferences thingies 'prefs' => $this->make_hook('prefs', AUTH_COOKIE), 'prefs/rss' => $this->make_hook('prefs_rss', AUTH_COOKIE), @@ -36,12 +53,31 @@ class PlatalModule extends PLModule 'tmpPWD' => $this->make_hook('tmpPWD', AUTH_PUBLIC), 'password/smtp' => $this->make_hook('smtppass', AUTH_MDP), 'recovery' => $this->make_hook('recovery', AUTH_PUBLIC), + 'exit' => $this->make_hook('exit', AUTH_PUBLIC), // happenings related thingies 'rss' => $this->make_hook('rss', AUTH_PUBLIC), ); } + function handler_cacert(&$page) + { + $data = file_get_contents('/etc/ssl/xorgCA/cacert.pem'); + header('Content-Type: application/x-x509-ca-cert'); + header('Content-Length: '.strlen($data)); + echo $data; + exit; + } + + function handler_changelog(&$page) + { + $page->changeTpl('changeLog.tpl'); + + $clog = htmlentities(file_get_contents(dirname(__FILE__).'/../ChangeLog')); + $clog = preg_replace('!(#[0-9]+(,[0-9]+)*)!e', 'bugize("\1")', $clog); + $page->assign('ChangeLog', $clog); + } + function __set_rss_state($state) { global $globals; @@ -329,6 +365,51 @@ Mail envoy return PL_OK; } + function handler_exit(&$page, $level = null) + { + if (Session::has('suid')) { + if (Session::has('suid')) { + $a4l = Session::get('forlife'); + $suid = Session::getMixed('suid'); + $log = Session::getMixed('log'); + $log->log("suid_stop", Session::get('forlife') . " by " . $suid['forlife']); + $_SESSION = $suid; + Session::kill('suid'); + redirect($globals->baseurl.'/admin/utilisateurs.php?login='.$a4l); + } else { + redirect("events"); + } + } + + if ($level == 'forget' || $level == 'forgetall') { + setcookie('ORGaccess', '', time() - 3600, '/', '', 0); + Cookie::kill('ORGaccess'); + if (isset($_SESSION['log'])) + $_SESSION['log']->log("cookie_off"); + } + + if ($level == 'forgetuid' || $level == 'forgetall') { + setcookie('ORGuid', '', time() - 3600, '/', '', 0); + Cookie::kill('ORGuid'); + setcookie('ORGdomain', '', time() - 3600, '/', '', 0); + Cookie::kill('ORGdomain'); + } + + if (isset($_SESSION['log'])) { + $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; + $_SESSION['log']->log('deconnexion',$ref); + } + + XorgSession::destroy(); + + if (Get::has('redirect')) { + redirect(rawurldecode(Get::get('redirect'))); + } else { + $page->changeTpl('exit.tpl'); + } + return PL_OK; + } + function handler_rss(&$page, $user = null, $hash = null) { global $globals;