X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fxnet%2Fsession.inc.php;h=2159954ce170a96098d2485c68820a927d501ccf;hb=eaf30d86cc99df2414cf4f171a9b0f11b0561e3b;hp=4a85ef806fd1c69ba22798c2b9f46018c54d553e;hpb=a14159bffdc1ea08c97e6634dc1480619bdc478a;p=platal.git diff --git a/include/xnet/session.inc.php b/include/xnet/session.inc.php index 4a85ef8..2159954 100644 --- a/include/xnet/session.inc.php +++ b/include/xnet/session.inc.php @@ -23,7 +23,8 @@ class XnetSession { // {{{ function init - public static function init() { + public static function init() + { global $globals; S::init(); @@ -41,6 +42,28 @@ class XnetSession $url .= "&url=".urlencode($returl); $_SESSION['loginX'] = $url; } + + if (S::logged() && $globals->asso()) { + $perms = S::v('perms'); + $perms->rmFlag('groupadmin'); + $perms->rmFlag('groupmember'); + $perms->rmFlag('groupannu'); + if (may_update()) { + $perms->addFlag('groupadmin'); + $perms->addFlag('groupmember'); + $perms->addFlag('groupannu'); + } + if (is_member()) { + $perms->addFlag('groupmember'); + if ($globals->asso('pub') == 'public') { + $perms->addFlag('groupannu'); + } + } + if ($globals->asso('cat') == 'Promotions') { + $perms->addFlag('groupannu'); + } + $_SESSION['perms'] = $perms; + } } // }}} @@ -81,7 +104,8 @@ class XnetSession // }}} // {{{ doAuthX - public static function doAuthX() { + public static function doAuthX() + { global $globals, $page; if (md5('1'.S::v('challenge').$globals->xnet->secret.Get::i('uid').'1') != Get::v('auth')) { @@ -99,8 +123,12 @@ class XnetSession LIMIT 1", Get::i('uid')); $_SESSION = array_merge($_SESSION, $res->fetchOneAssoc()); $_SESSION['auth'] = AUTH_MDP; + require_once 'xorg/session.inc.php'; + $_SESSION['perms'] =& XorgSession::make_perms(S::v('perms')); S::kill('challenge'); S::kill('loginX'); + S::kill('may_update'); + S::kill('is_member'); Get::kill('auth'); Get::kill('uid'); $path = Get::v('n'); @@ -123,14 +151,15 @@ class XnetSession if (!S::has('suid')) { $_SESSION['suid'] = $_SESSION; } - $_SESSION['perms'] = 'user'; + require_once 'xorg/session.inc.php'; + $_SESSION['perms'] =& XorgSession::make_perms('user'); } // }}} // {{{ killSuid public static function killSuid() - { + { if (!S::has('suid')) { return; } @@ -182,7 +211,7 @@ function may_update($force = false, $lose = false) /** 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'])) {