X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fcore.php;h=0ab9d9ce39fd6a332039d87538980347087e9d3d;hb=80d0423e13a1fbf932fa8b27f323af0d504a7873;hp=b82c2ef48a7a7e8c81cf3e329ec2db88a8563e7e;hpb=99132dee513750acb49548c0b9f753d4bc4c95bc;p=platal.git diff --git a/modules/core.php b/modules/core.php index b82c2ef..0ab9d9c 100644 --- a/modules/core.php +++ b/modules/core.php @@ -30,7 +30,7 @@ class CoreModule extends PLModule 'send_bug' => $this->make_hook('bug', AUTH_COOKIE), 'purge_cache' => $this->make_hook('purge_cache', AUTH_COOKIE, 'admin'), 'kill_sessions' => $this->make_hook('kill_sessions', AUTH_COOKIE, 'admin'), - 'get_rights' => $this->make_hook('get_rights', AUTH_MDP, 'admin'), + 'sql_errors' => $this->make_hook('sqlerror', AUTH_COOKIE, 'admin'), 'wiki_help' => $this->make_hook('wiki_help', AUTH_PUBLIC), 'wiki_preview' => $this->make_hook('wiki_preview', AUTH_COOKIE, 'user', NO_AUTH), @@ -51,6 +51,7 @@ class CoreModule extends PLModule { global $globals; header($_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden'); + $page->trigError('Tu n\'as pas les permissions nécessaires pour accéder à cette page.'); $page->coreTpl('403.tpl'); } @@ -60,6 +61,7 @@ class CoreModule extends PLModule header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found'); $page->coreTpl('404.tpl'); $page->assign('near', $platal->near_hook()); + $page->trigError('Cette page n\'existe pas !!!'); } function handler_login(&$page) @@ -81,14 +83,25 @@ class CoreModule extends PLModule function handler_robotstxt(&$page) { global $globals; - if (!$globals->core->restricted_platal) { - return PL_NOT_FOUND; + + $disallowed_uris = array(); + if ($globals->core->restricted_platal) { + $disallowed_uris[] = '/'; + } else if (!empty($globals->core->robotstxt_disallowed_uris)) { + $disallowed_uris = preg_split('/[\s,]+/', + $globals->core->robotstxt_disallowed_uris, + -1, PREG_SPLIT_NO_EMPTY); } - header('Content-Type: text/plain'); - echo "User-agent: *\n"; - echo "Disallow: /\n"; - exit; + if (count($disallowed_uris) > 0) { + header('Content-Type: text/plain'); + echo "User-agent: *\n"; + foreach ($disallowed_uris as $uri) { + echo "Disallow: $uri\n"; + } + exit; + } + return PL_NOT_FOUND; } function handler_purge_cache(&$page) @@ -106,26 +119,6 @@ class CoreModule extends PLModule kill_sessions(); } - function handler_get_rights(&$page, $level) - { - if (S::has('suid')) { - $page->kill('Déjà en SUID'); - } - - if (isset($_SESSION['log'])) { - if (S::user()) { - S::logger()->log("suid_start", "login by " . S::user()->login()); - } else { - // TODO(vzanotti): trash that code when support of forlife will be gone. - S::logger()->log("suid_start", "login by ".S::v('forlife')); - } - } - Platal::session()->startSUID(S::i('uid')); - Platal::session()->makePerms($level); - - pl_redirect('/'); - } - function handler_bug(&$page) { global $globals; @@ -149,19 +142,22 @@ class CoreModule extends PLModule $body = wordwrap(Env::v('detailed_desc'), 78) . "\n\n" . "----------------------------\n" . "Page : " . Env::v('page') . "\n\n" - . "Utilisateur : " . S::v('forlife') . "\n" + . "Utilisateur : " . S::user()->login() . "\n" . "Navigateur : " . $_SERVER['HTTP_USER_AGENT'] . "\n" . "Skin : " . S::v('skin') . "\n"; - $page->assign('bug_sent',1); + $page->assign('bug_sent', 1); + $page->trigSuccess('Ton message a bien été envoyé au support de ' . $globals->core->sitename + . ', tu devrais en recevoir une copie d\'ici quelques minutes. Nous allons ' + . 'le traiter et y répondre dans les plus brefs délais.'); $mymail = new PlMailer(); - $mymail->setFrom('"'.S::v('prenom').' '.S::v('nom').'" <'.S::v('bestalias').'@' . $globals->mail->domain . '>'); + $mymail->setFrom(sprintf('"%s" <%s>', S::user()->fullName(), S::user()->bestEmail())); + $mymail->addCc(sprintf('"%s" <%s>', S::user()->fullName(), S::user()->bestEmail())); $mymail->addTo('support+platal@' . $globals->mail->domain); - $mymail->addCc('"'.S::v('prenom').' '.S::v('nom').'" <'.S::v('bestalias').'@' . $globals->mail->domain . '>'); $mymail->setSubject('Plat/al '.Env::v('task_type').' : '.Env::v('item_summary')); $mymail->setTxtBody($body); $mymail->send(); } elseif (Env::has('send')) { - $page->trigError("Merci de remplir une explication du problème rencontré"); + $page->trigError("Merci de remplir une explication du problème rencontré."); } } @@ -175,10 +171,25 @@ class CoreModule extends PLModule function handler_wiki_preview(&$page, $action = 'title') { header('Content-Type: text/html; charset=utf-8'); - $text = Get::v('text'); + $text = Env::v('text'); echo MiniWiki::wikiToHtml($text, $action == 'title'); exit; } + + function handler_sqlerror(&$page, $clear = null) { + global $globals; + $file = @fopen($globals->spoolroot . '/spool/tmp/query_errors', 'r'); + if ($file !== false) { + echo ''; + fpassthru($file); + fclose($file); + echo ''; + } + if ($clear == 'clear') { + @unlink($globals->spoolroot . '/spool/tmp/query_errors'); + } + exit; + } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: