From: x2003bruneau Date: Sat, 9 Dec 2006 23:02:59 +0000 (+0000) Subject: Fix and clean code X-Git-Tag: xorg/0.9.13~200 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=0deaff1d2c41b63bf9ea3fc39c4d9131cab61569;hp=b8e265bfd41bb292dc7d92fe8fa14602697a4380;p=platal.git Fix and clean code git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1265 839d8a87-29fc-0310-9880-83ba4fa771e5 --- diff --git a/include/xnet/session.inc.php b/include/xnet/session.inc.php index 8ef9aac..9ef0059 100644 --- a/include/xnet/session.inc.php +++ b/include/xnet/session.inc.php @@ -60,9 +60,9 @@ class XnetSession */ public static function doAuth() { - if (S::identified()) { // ok, c'est bon, on n'a rien à faire - return true; - } + if (S::identified()) { // ok, c'est bon, on n'a rien à faire + return true; + } if (Get::has('auth')) { return XnetSession::doAuthX(); @@ -116,36 +116,41 @@ class XnetSession } // }}} -} - -// {{{ doSelfSuid + // {{{ doSelfSuid -function doSelfSuid() -{ - if (!S::has('suid')) { - $_SESSION['suid'] = $_SESSION; + public static function doSelfSuid() + { + if (!S::has('suid')) { + $_SESSION['suid'] = $_SESSION; + } + $_SESSION['perms'] = 'user'; } - $_SESSION['perms'] = 'user'; -} -// }}} -// {{{ killSuid + // }}} + // {{{ killSuid -function killSuid() -{ - if (!S::has('suid')) { - return; + public static function killSuid() + { + if (!S::has('suid')) { + return; + } + $suid = S::v('suid'); + S::kill('suid'); + S::kill('may_update'); + S::kill('is_member'); + $_SESSION['perms'] = $suid['perms']; } - $suid = S::v('suid'); - S::kill('suid'); - S::kill('may_update'); - S::kill('is_member'); - $_SESSION['perms'] = $suid['perms']; + + // }}} } // }}} -// {{{ may_update +// {{{ function may_update +/** Return administration rights for the current asso + * @param force Force administration rights to be read from database + * @param lose Force administration rights to be false + */ function may_update($force = false, $lose = false) { if (!isset($_SESSION['may_update'])) { @@ -155,23 +160,29 @@ function may_update($force = false, $lose = false) global $globals; $asso_id = $globals->asso('id'); - if (!$asso_id) { return false; } - if (S::has_perms() && !$lose) { return true; } - if ((!isset($may_update[$asso_id]) || $force) && !$lose) { + if (!$asso_id) { + return false; + } elseif ($lose) { + $may_update[$asso_id] = false; + } elseif (S::has_perms() || (S::has('suid') && $force)) { + $may_update[$asso_id] = true; + } elseif (!isset($may_update[$asso_id]) || $force) { $res = XDB::query("SELECT perms FROM groupex.membres WHERE uid={?} AND asso_id={?}", - S::v('uid'), $globals->asso('id')); + S::v('uid'), $globals->asso('id')); $may_update[$asso_id] = ($res->fetchOneCell() == 'admin'); - } elseif ($lose) { - $may_update[$asso_id] = false; } return $may_update[$asso_id]; } // }}} -// {{{ is_member +// {{{ function is_member +/** Get membership informations for the current asso + * @param force Force membership to be read from database + * @param lose Force membership to be false + */ function is_member($force = false, $lose = false) { if (!isset($_SESSION['is_member'])) { @@ -181,16 +192,18 @@ function is_member($force = false, $lose = false) global $globals; $asso_id = $globals->asso('id'); - if (!$asso_id) { return false; } - if ((!isset($is_member[$asso_id]) || $force) && !$lose) { - $res = XDB::query( - "SELECT COUNT(*) - FROM groupex.membres - WHERE uid={?} AND asso_id={?}", - S::v('uid'), $asso_id); - $is_member[$asso_id] = $res->fetchOneCell() == 1; + if (!$asso_id) { + return false; } elseif ($lose) { $is_member[$asso_id] = false; + } elseif (S::has('suid') && $force) { + $is_member[$asso_id] = true; + } elseif (!isset($is_member[$asso_id]) || $force) { + $res = XDB::query("SELECT COUNT(*) + FROM groupex.membres + WHERE uid={?} AND asso_id={?}", + S::v('uid'), $asso_id); + $is_member[$asso_id] = ($res->fetchOneCell() == 1); } return $is_member[$asso_id]; } diff --git a/modules/xnet.php b/modules/xnet.php index 09f58e9..95a9be6 100644 --- a/modules/xnet.php +++ b/modules/xnet.php @@ -89,9 +89,7 @@ class XnetModule extends PLModule function handler_exit(&$page) { - if (S::has('suid')) { - killSuid(); - } + XnetSession::killSuid(); XnetSession::destroy(); $page->changeTpl('xnet/deconnexion.tpl'); } diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index 46d3253..a629907 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -573,21 +573,21 @@ class XnetGrpModule extends PLModule { if (Env::has('right') && (may_update() || S::has('suid'))) { switch (Env::v('right')) { - case 'admin': - killSuid(); + case 'admin': + XnetSession::killSuid(); break; case 'anim': - doSelfSuid(); + XnetSession::doSelfSuid(); may_update(true); is_member(true); break; case 'member': - doSelfSuid(); + XnetSession::doSelfSuid(); may_update(false, true); is_member(true); break; case 'logged': - doSelfSuid(); + XnetSession::doSelfSuid(); may_update(false, true); is_member(false, true); break; diff --git a/templates/xnet/skin.tpl b/templates/xnet/skin.tpl index 04942bc..591182f 100644 --- a/templates/xnet/skin.tpl +++ b/templates/xnet/skin.tpl @@ -129,6 +129,24 @@ {/foreach} + {if $asso && ($is_admin || $smarty.session.suid.perms eq 'admin' || $smarty.suid.may_update[$asso.id])} + + {/if}