Use 'changeTpl' for xnet pages and use handler permission instead of page restriction
[platal.git] / include / xnet.inc.php
index ce3bf43..d2104e0 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2004 Polytechnique.org                              *
+ *  Copyright (C) 2003-2007 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
  ***************************************************************************/
 
 require_once('platal.inc.php');
-require_once('xnet/globals.inc.php');
+require_once('globals.inc.php');
 require_once('xnet/session.inc.php');
-XnetGlobals::init();
-XnetGlobals::setlocale();
+$globals = new PlatalGlobals('XnetSession');
 XnetSession::init();
 
 // {{{ function new_skinned_page()
 
-function new_page($tpl_name, $min_auth)
+function new_skinned_page($tpl_name, $refuse_access = false)
 {
-    global $page,$globals;
+    global $page, $globals;
     require_once("xnet/page.inc.php");
-    switch($min_auth) {
-        case AUTH_PUBLIC:
-            $page = new XnetPage($tpl_name, $type);
-            break;
-
-        default:
-            $page = new XnetAuth($tpl_name, $type);
+    if (!$page instanceof XnetPage) {
+        $page = new XnetPage($tpl_name, $type);
+    } else {
+        $page->changeTpl($tpl_name, $type);
+    }
+    if ($refuse_access) {
+        $page->kill("Vous n'avez pas les droits suffisants pour accéder à cette page");
     }
-    $page->assign('xorg_tpl', $tpl_name);
-}
-
-// }}}
-function new_identification_page()
-{
-    new_page('', AUTH_MDP);
-    global $page;
-    $page->useMenu();
-}
-
-// {{{ function new_group_page()
-
-function new_group_page($tpl_name)
-{
-    global $page,$globals;
-    require_once("xnet/page.inc.php");
-    $page = new XnetGroupPage($tpl_name);
-    $page->assign('xorg_tpl', $tpl_name);
-}
-
-// }}}
-// {{{ function new_groupadmin_page()
-
-function new_groupadmin_page($tpl_name)
-{
-    global $page,$globals;
-    require_once("xnet/page.inc.php");
-    $page = new XnetGroupAdmin($tpl_name);
-    $page->assign('xorg_tpl', $tpl_name);
 }
 
 // }}}
-// {{{ function new_admin_page()
+// {{{ function new_annu_page()
 
-function new_admin_page($tpl_name)
+function new_annu_page($tpl_name)
 {
-    global $page,$globals;
-    require_once("xnet/page.inc.php");
-    $page = new XnetAdmin($tpl_name);
-    $page->assign('xorg_tpl', $tpl_name);
+    global $globals;
+    new_skinned_page($tpl_name, 
+                     !may_update()
+                     && (!is_member()  || $globals->asso('pub') != 'public')
+                     && $globals->asso('cat') != 'Promotions');
 }
 
 // }}}
-// {{{ function new_nonhtml_page()
 
-function new_nonhtml_page($tpl_name)
-{
-    global $page, $globals;
-    require_once("xnet/page.inc.php");
-    $page = new XnetGroupPage($tpl_name, NO_SKIN);
-    $page->assign('xorg_tpl', $tpl_name);
-}
-
-// }}}
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
 ?>