X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fsession.php;h=6eb5b3095ee8476a9c3d7ddbd5c9c24ae20fa368;hb=2669eb7ddb20749fd6d1e99e611f6d199daa5580;hp=3bd434928ee4f02d86769a509f870215019baa2a;hpb=5ddeb07cc787dd1dc3630a31f1528f5cc7c4d9b9;p=platal.git diff --git a/classes/session.php b/classes/session.php index 3bd4349..6eb5b30 100644 --- a/classes/session.php +++ b/classes/session.php @@ -1,6 +1,6 @@ hasFlag(PERMS_ADMIN); } public static function logged() @@ -73,6 +87,27 @@ class Session { return Session::v('auth', AUTH_PUBLIC) >= AUTH_MDP; } + + // Anti-XSRF protections. + public static function has_xsrf_token() + { + return Session::has('xsrf_token') && Session::v('xsrf_token') == Env::v('token'); + } + + public static function assert_xsrf_token() + { + if (!Session::has_xsrf_token()) { + global $page; + if ($page instanceof PlatalPage) { + $page->kill("L'opération n'a pas pu aboutir, merci de réessayer."); + } + } + } + + public static function rssActivated() + { + return Session::has('core_rss_hash') && Session::v('core_rss_hash'); + } } // {{{ function check_perms() @@ -88,10 +123,11 @@ function check_perms() if ($_SESSION['log']) { $_SESSION['log']->log("noperms",$_SERVER['PHP_SELF']); } - $page->kill("Tu n'as pas les permissions nécessaires pour accéder à cette page."); + $page->kill("Tu n'as pas les permissions nécessaires pour accéder à cette page."); } } // }}} +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>