bug avec les skins
authorx2000habouzit <x2000habouzit>
Mon, 26 Jan 2004 16:14:51 +0000 (16:14 +0000)
committerx2000habouzit <x2000habouzit>
Mon, 26 Jan 2004 16:14:51 +0000 (16:14 +0000)
gestion du cookie permanent
preferences.php

13 files changed:
htdocs/clear_all_cache.php [new file with mode: 0644]
htdocs/cookie_off.php [new file with mode: 0644]
htdocs/cookie_on.php [new file with mode: 0644]
htdocs/deconnexion.php
htdocs/preferences.php [new file with mode: 0644]
include/auto.prepend.inc.php
include/menu.inc.php
include/xorg.page.inc.php
include/xorg.session.inc.php
templates/cookie_off.tpl [new file with mode: 0644]
templates/cookie_on.tpl [new file with mode: 0644]
templates/preferences.head.tpl [new file with mode: 0644]
templates/preferences.tpl [new file with mode: 0644]

diff --git a/htdocs/clear_all_cache.php b/htdocs/clear_all_cache.php
new file mode 100644 (file)
index 0000000..db70302
--- /dev/null
@@ -0,0 +1,6 @@
+<?php
+require("auto.prepend.inc.php");
+new_admin_page('index.tpl');
+$page->clear_all_cache();
+header("Location: index.php");
+?>
diff --git a/htdocs/cookie_off.php b/htdocs/cookie_off.php
new file mode 100644 (file)
index 0000000..3ebbc72
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page('index.tpl', AUTH_COOKIE);
+
+setcookie('ORGaccess','',(time()+1),'/','',0);
+$_SESSION['log']->log("cookie_off");
+
+// si on a le cookie, et qu'on est pas identifié,
+// s'enlever le cookie revient à se déconnecter
+if(!identified()) {
+    session_destroy();
+    $_SESSION = array();
+}
+
+$page->display();
+?>
diff --git a/htdocs/cookie_on.php b/htdocs/cookie_on.php
new file mode 100644 (file)
index 0000000..2f356b4
--- /dev/null
@@ -0,0 +1,14 @@
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page('cookie_on.tpl', AUTH_MDP);
+
+$res = @mysql_query( "SELECT password FROM auth_user_md5 WHERE user_id='{$_SESSION['uid']}'" );
+list($password)=mysql_fetch_row($res);
+$cookie=md5($password);
+@mysql_free_result($res);
+
+setcookie('ORGaccess',$cookie,(time()+25920000),'/','',0);
+$_SESSION['log']->log("cookie_on");
+
+$page->display();
+?>
index 97ef8f3..145a31f 100644 (file)
@@ -13,7 +13,7 @@ session_destroy();
 $has_cookie = (isset($_COOKIE['ORGaccess']) && isset($_COOKIE['ORGlogin']));
 $_SESSION = array();
 if($has_cookie)
-    header("Location: ".url("login.php"));
+    header("Location: login.php");
 
 new_skinned_page('deconnexion.tpl', AUTH_PUBLIC);
 
diff --git a/htdocs/preferences.php b/htdocs/preferences.php
new file mode 100644 (file)
index 0000000..9706a5f
--- /dev/null
@@ -0,0 +1,9 @@
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page('preferences.tpl', AUTH_COOKIE, 'preferences.head.tpl');
+
+$has_cookie = (isset($_COOKIE['ORGaccess']) ? 'cookie' : '');
+$page->assign('has_cookie', $has_cookie);
+
+$page->display($has_cookie);
+?>
index 6db6136..4f06703 100644 (file)
@@ -34,7 +34,6 @@ function new_popup_page($tpl_name, $min_auth, $tpl_head="") {
 }
 
 function new_admin_page($tpl_name, $tpl_head="") {
-    require("xorg.page.inc.php");
     _new_page(SKINNED, $tpl_name, $tpl_head, AUTH_MDP, true);
 }
 
index a39d0a9..26256c2 100644 (file)
@@ -8,7 +8,7 @@ if(logged()) {
             'Mon profil' => '###url###' ,
             'Mes contacts' => '###url###' ,
             'Mon mot de passe' => '###url###' ,
-            'Mes préférences' => '###url###
+            'Mes préférences' => 'preferences.php
         ),
         'Services' => Array (
             'Envoyer un mail' => '###url###' ,
@@ -41,12 +41,10 @@ if(logged()) {
             'Marketing' => '###url###',
             'Administration' => '###url###',
             'Trackers' => '###url###',
-            'Documentations' => '###url###'
-        );
-    } elseif(has_perms($marketing_admin)) {
-        $menu['***'] = Array (
-            'Marketing' => '###url###'
+            'Documentations' => '###url###',
+            'Clear cache' => 'clear_all_cache.php'
         );
+        if(empty($site_dev)) pop($menu['***']);
     }
 } else {
     $menu = Array(
index 8be25fe..d3dd9b8 100644 (file)
@@ -30,7 +30,6 @@ class XorgPage extends DiogenesCorePage {
     // si necessaire, c'est *ici* que se fait l'authentification
     $_no_legacy = true;
     $this->doAuth();
-    $this->set_skin();
   }
 
   function display($append_to_id="") {
@@ -48,34 +47,6 @@ class XorgPage extends DiogenesCorePage {
   }
 
   function doAuth() { }
-  
-  function set_skin() {
-    if(logged()) {
-      $result = mysql_query("SELECT skin FROM auth_user_md5 WHERE username = '{$_SESSION['uid']}'");
-      if(list($skin) = mysql_fetch_row($result)) {
-        $sql = "SELECT normal,popup FROM skins WHERE ";
-        if ($_SESSION['skin'] == SKIN_STOCHASKIN_ID) {
-          $sql .= " !FIND_IN_SET('cachee',type) order by rand() limit 1";
-        } else {
-          $sql .= "id='$skin'";
-        }
-        $res = mysql_query($sql);
-        list($_SESSION['skin'], $_SESSION['skin_popup']) = mysql_fetch_row($res);
-        mysql_free_result($res);
-      } else {
-        $_SESSION['skin'] = SKIN_COMPATIBLE;
-        $_SESSION['skin_popup'] = SKIN_COMPATIBLE;
-      }
-      mysql_free_result($result);
-    }
-
-    if( !logged() || !isset($_SERVER['HTTP_USER_AGENT'])
-        || ereg("Mozilla/4\.[0-9]{1,2} \[",$_SERVER['HTTP_USER_AGENT']) )
-    {
-      $_SESSION['skin'] = SKIN_COMPATIBLE;
-      $_SESSION['skin_popup'] = SKIN_COMPATIBLE;
-    }
-  }
 
 }
 
index feb8525..f76e50a 100644 (file)
@@ -7,6 +7,7 @@ class XorgSession extends DiogenesCoreSession {
   {
     $this->DiogenesCoreSession();
     $_SESSION['challenge']=rand_token();
+    set_skin();
   }
 
 
@@ -111,17 +112,16 @@ class XorgSession extends DiogenesCoreSession {
     global $failed_ORGaccess,$site_dev;
 
     if(isset($_COOKIE['ORGaccess']) and isset($_COOKIE['ORGlogin']) and !isset($failed_ORGaccess)) {
-      $page->_tpl = "password_prompt_logged.tpl";
+      $page->_tpl = 'password_prompt_logged.tpl';
       $page->assign("xorg_head", "password_prompt_logged.head.tpl");
       $page->assign("xorg_tpl", "password_prompt_logged.tpl");
       $page->display();
     } else {
-      $page->_tpl = "password_prompt.tpl";
+      $page->_tpl = 'password_prompt.tpl';
       $page->assign("xorg_head", "password_prompt.head.tpl");
       $page->assign("xorg_tpl", "password_prompt.tpl");
       $page->display();
     }
-    //    $page->assign('challenge',$this->challenge);
     exit;
   }
 
@@ -221,6 +221,35 @@ function start_connexion ($username, $uid, $identified) {
     $_SESSION['log']->log("connexion",$_SERVER['PHP_SELF']);
   // le login est stocké pour un an
   setcookie('ORGlogin',$username,(time()+25920000),'/','',0);
+  set_skin();
+}
+
+function set_skin() {
+  if(logged()) {
+    $result = mysql_query("SELECT skin FROM auth_user_md5 WHERE username = '{$_SESSION['uid']}'");
+    if(list($skin) = mysql_fetch_row($result)) {
+      $sql = "SELECT normal,popup FROM skins WHERE ";
+      if ($_SESSION['skin'] == SKIN_STOCHASKIN_ID) {
+        $sql .= " !FIND_IN_SET('cachee',type) order by rand() limit 1";
+      } else {
+        $sql .= "id='$skin'";
+      }
+      $res = mysql_query($sql);
+      list($_SESSION['skin'], $_SESSION['skin_popup']) = mysql_fetch_row($res);
+      mysql_free_result($res);
+    } else {
+      $_SESSION['skin'] = SKIN_COMPATIBLE;
+      $_SESSION['skin_popup'] = SKIN_COMPATIBLE;
+    }
+    mysql_free_result($result);
+  }
+
+  if( !logged() || !isset($_SERVER['HTTP_USER_AGENT'])
+      || ereg("Mozilla/4\.[0-9]{1,2} \[",$_SERVER['HTTP_USER_AGENT']) )
+  {
+    $_SESSION['skin'] = SKIN_COMPATIBLE;
+    $_SESSION['skin_popup'] = SKIN_COMPATIBLE;
+  }
 }
 
 ?>
diff --git a/templates/cookie_off.tpl b/templates/cookie_off.tpl
new file mode 100644 (file)
index 0000000..b8d780b
--- /dev/null
@@ -0,0 +1,13 @@
+{* $Id: cookie_off.tpl,v 1.1 2004-01-26 16:14:51 x2000habouzit Exp $ *}
+
+<div class="rubrique">
+  Contrôle d'accès au site
+</div>
+<p class="normal">
+  L'accès sans mot de passe au site vient d'être supprimé pour l'ordinateur sur lequel tu
+  es connecté en ce moment. Depuis ce poste de travail, tu devras donc entrer ton mot de
+  passe à nouveau pour te connecter sur le site comme sur un poste normal quelconque où
+  tout le monde peut accéder.
+</p>
+
+{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/cookie_on.tpl b/templates/cookie_on.tpl
new file mode 100644 (file)
index 0000000..1dddb23
--- /dev/null
@@ -0,0 +1,26 @@
+{* $Id: cookie_on.tpl,v 1.1 2004-01-26 16:14:51 x2000habouzit Exp $ *}
+
+  <div class="rubrique">
+    Contrôle d'accès au site
+  </div>
+  <p class="normal">
+    L'accès permanent sans mot de passe <b>vient d'être attribué</b> à cet ordinateur.
+    Toute personne accédant au web par ce poste de travail peut donc consulter l'annuaire
+    on-line et accéder à la partie privée du site.
+  </p>
+  <p class="normal">
+    Nous te recommandons donc la plus grande prudence avec cette fonctionnalité si tu n'es
+    pas sûr de comprendre de quoi il s'agit. Il est notamment souhaitable de n'utiliser
+    cette
+    option que pour un ordinateur à la maison.
+  </p>
+  <p class="erreur">
+    En tout état de cause, si tu ne sais pas donner une définition simple du mot
+    "cookie", tu ne devrais pas utiliser cette option.
+  </p>
+  <p class="normal">
+    Si tu te dis que ceci n'est pas pour toi, alors
+    <a href="cookie_off.php">clique ici pour annuler</a>.
+  </p>
+
+{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/preferences.head.tpl b/templates/preferences.head.tpl
new file mode 100644 (file)
index 0000000..2885373
--- /dev/null
@@ -0,0 +1,12 @@
+{* $Id: preferences.head.tpl,v 1.1 2004-01-26 16:14:51 x2000habouzit Exp $ *}
+
+{literal}
+    <style type="text/css" media="screen,print">
+    <!--
+      .explication {font-style: italic; padding: 0.25em;}
+      .lien {font-weight: bold; padding: 0.25em;}
+    -->
+    </style>
+{/literal}
+    
+{* vim:set et sw=2 sts=2 sws=2: *}
diff --git a/templates/preferences.tpl b/templates/preferences.tpl
new file mode 100644 (file)
index 0000000..54056fb
--- /dev/null
@@ -0,0 +1,98 @@
+{* $Id: preferences.tpl,v 1.1 2004-01-26 16:14:51 x2000habouzit Exp $ *}
+<div class="rubrique">
+  Préférences
+</div>
+
+<center>
+  <table class="bicol" summary="Préférences: services">
+    <tr>
+      <th colspan="2">Configuration des différents services du site
+      </th>
+    </tr>
+    <tr class="impair">
+      <td><div class="lien">
+          <a href="{"emails.php"|url}">Mes adresses de redirection</a>
+        </div>
+        <div class="explication">
+          Tu peux configurer tes différentes redirections de mails ici.
+        </div>
+      </td>
+      <td><div class="lien">
+          <a href="{"alias.php"|url}">Mon alias mail @melix.net/.org</a>
+        </div>
+        <div class="explication">
+          Pour choisir un alias @melix.net et @melix.org (en choisir un nouveau annule l'ancien).
+        </div>
+      </td>
+    </tr>
+    <tr class="pair">
+      <td><div class="lien">
+          <a href="{"acces_redirect.php"|url}">Ma redirection de page WEB</a>
+        </div>
+        <div class="explication">
+          Tu peux configurer ta redirection WEB http://www.carva.org/{dyn s=$smarty.session.username}
+        </div>
+      </td>
+      <td><div class="lien">
+          <a href="{"skins.php"|url}">Apparence du site (skins)</a>
+        </div>
+        <div class="explication">
+          Tu peux changer les couleurs et les images du site.
+        </div>
+      </td>
+    </tr>
+  </table>
+
+  <br />
+
+  <table class="bicol" summary="Préférences: mdp" width="95%" cellpadding="3">
+    <tr>
+      <th>Mots de passe et accès au site</th>
+    </tr>
+    <tr class="impair">
+      <td><div class="lien">
+          <a href="{"motdepassemd5.php"|url}">Changer mon mot de passe pour le site</a>
+        </div>
+        <div class="explication">
+          permet de changer ton mot de passe pour accéder au site Polytechnique.org
+        </div>
+      </td>
+    </tr>
+    <tr class="pair">
+      <td><div class="lien">
+          <a href="{"acces_smtp.php"|url}">Activer l'accès SMTP et NNTP</a>
+        </div>
+        <div class="explication">
+          Pour activer ton compte sur le serveur SMTP et NNTP de Polytechnique.org.
+          Cela te permet d'envoyer tes mails plus souplement (SMTP), et de consulter
+          les forums directement depuis ton logiciel habituel de courrier électronique.
+        </div>
+      </td>
+    </tr>
+    <tr class="impair">
+      <td>
+{if $has_cookie}
+        <div class="lien">
+          <a href="cookie_off.php">Supprimer l'accès permanent</a>
+        </div>
+        <div class="explication">
+          Clique sur le lien ci-dessus pour retirer l'accès sans mot de passe au site. Après avoir
+          cliqué, tu devras à nouveau entrer ton mot de passe pour accéder aux différentes pages
+          comme initialement.
+        </div>
+{else}
+        <div class="lien">
+          <a href="cookie_on.php">Attribuer un cookie d'authentification permanente</a>
+        </div>
+        <div class="explication">
+          Cette option te permet de ne plus avoir à entrer ton mot de passe pour la majorité des pages
+          du site. Ce dernier reste cependant nécessaire pour le profil ou le changement de mot de
+          passe. Il s'agit d'une option destinée aux utilisateurs fréquents du site, plutôt à l'aise
+          avec l'informatique, et pour un ordinateur non partagé.
+        </div>
+{/if}
+      </td>
+    </tr>
+  </table>
+
+{* vim:set et sw=2 sts=2 sws=2: *}