X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fsession.php;h=6eb5b3095ee8476a9c3d7ddbd5c9c24ae20fa368;hb=06df222b7962dd5b71b34ec1dd078276d7327dbc;hp=2ebaac2386983dae68f4c1cf17ae91d27c38737b;hpb=a7de4ef724d1a3b0bf978a50ce7cc9d23412c7a0;p=platal.git diff --git a/classes/session.php b/classes/session.php index 2ebaac2..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,7 +123,7 @@ 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."); } }