more on perms
authorx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sat, 22 Jul 2006 16:35:20 +0000 (16:35 +0000)
committerx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sat, 22 Jul 2006 16:35:20 +0000 (16:35 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@564 839d8a87-29fc-0310-9880-83ba4fa771e5

htdocs/wiki.php
include/wiki.inc.php
templates/skins.tpl
templates/wiki.tpl

index 1d0963e..ab25fbc 100644 (file)
@@ -31,16 +31,15 @@ if (!$n) {
 }
 
 new_skinned_page('wiki.tpl');
+$perms = get_perms($n);
 
 switch (Env::get('action')) {
   case '':
-    list($r) = get_perms($n);
-    wiki_apply_perms($r);
+    wiki_apply_perms($perms[0]);
     break;
 
   case 'edit':
-    list(, $e) = get_perms($n);
-    wiki_apply_perms($e);
+    wiki_apply_perms($perms[1]);
     break;
 
   default:
@@ -78,9 +77,17 @@ if (Env::get('action')) {
     }
 }
 
+$page->assign('perms', $perms);
+$page->assign('perms_opts',
+              array('public' => 'Public', 'logged' => 'Connecté',
+                    'mdp' => 'Authentifié', 'admin' => 'Admin'));
+
+$page->assign('canedit',    wiki_may_have_perms($perms[1]));
+$page->assign('has_perms',  wiki_may_have_perms('admin'));
+
 $page->assign('wikipage', str_replace('.', '/', $n));
-$page->assign('pmwiki', $wikiAll);
-$page->assign('has_perms',  S::has_perms());
+$page->assign('pmwiki',   $wikiAll);
+
 $page->addCssLink('css/wiki.css');
 
 $page->run();
index 000690e..7e69dd2 100644 (file)
@@ -59,6 +59,15 @@ function get_perms($n)
     return array('logged', 'admin');
 }
 
+function wiki_may_have_perms($perm) {
+    switch ($perm) {
+      case 'public': return true;
+      case 'logged': return S::logged();
+      case 'mdp':    return S::logged();
+      default:       return S::has_perms();
+    }
+}
+
 function wiki_apply_perms($perm) {
     global $page, $platal;
 
index d5dd210..7645bfd 100644 (file)
@@ -41,7 +41,7 @@ Pour toute information compl
 
 <form action="{$smarty.server.REQUEST_URI}" method="post">
   <table id="skin" cellpadding="0" cellspacing="0" summary="Choix de skins">
-    {iterate item=skin from=$skins}    
+    {iterate item=skin from=$skins}
     <tr>
       <td class="skigauche">
         <input type="radio" name="newskin" value="{$skin.id}" {if $smarty.session.skin_id eq $skin.id}checked="checked"{/if} onclick="this.form.submit();" />
index 07355ec..0c679a4 100644 (file)
   <tr>
     <td>
       <a href='{$wikipage}'>Voir la page</a>
+      {if $has_perms}
       <select>
-        <option>Public</option>
-        <option>Public</option>
-        <option>Public</option>
-        <option>Public</option>
+      {html_options options=$perms_opts selected=$perms[0]}
       </select>
+      {/if}
     </td>
-    {if true}
+    {if $canedit}
     <td>
       <a href='{$wikipage}?action=edit'>Éditer</a>
+      {if $has_perms}
       <select>
-        <option>Public</option>
-        <option>Public</option>
-        <option>Public</option>
-        <option>Public</option>
+      {html_options options=$perms_opts selected=$perms[1]}
       </select>
+      {else}
+      {$perms[0]}
+      {/if}
     </td>
     {/if}
     {if $has_perms}