affichage des droits d'acces dans Droits pour le wiki
authorx2001corpet <x2001corpet@839d8a87-29fc-0310-9880-83ba4fa771e5>
Thu, 13 Oct 2005 07:27:57 +0000 (07:27 +0000)
committerx2001corpet <x2001corpet@839d8a87-29fc-0310-9880-83ba4fa771e5>
Thu, 13 Oct 2005 07:27:57 +0000 (07:27 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@95 839d8a87-29fc-0310-9880-83ba4fa771e5

plugins/pmwiki.config.php
plugins/pmwiki.platalAuth.php

index 679f481..ad0856a 100644 (file)
@@ -50,6 +50,7 @@ $DefaultPasswords['read'] = 'has_perms: and: identified:';
 $DefaultPasswords['edit'] = 'has_perms: and: identified:';
 $DefaultPasswords['attr'] = 'has_perms: and: identified:';
 $DefaultPasswords['admin'] = 'has_perms: and: identified:';
+$DefaultPasswords['upload'] = 'has_perms: and: identified:';
 
 ##  PmWiki comes with graphical user interface buttons for editing;
 ##  to enable these buttons, set $EnableGUIButtons to 1.  
index ab384f2..0db1b40 100644 (file)
@@ -23,16 +23,16 @@ function authPerms($pagename,$key,$could=false)
  return $auth;
 }
 
-function TryAllAuths($pagename, $level, $page_read, $group_read, $could = false)
+function TryAllAuths($pagename, $level, $page_read, $group_read)
 {
  global $DefaultPasswords;
  if (isset($page_read['passwd'.$level]) && $page_read['passwd'.$level] != '*')
-  return authPerms($pagename,$page_read['passwd'.$level], $could);
+  return array('page', $page_read['passwd'.$level]);
  if (isset($group_read['passwd'.$level]) && $group_read['passwd'.$level] != '*')
-  return authPerms($pagename,$group_read['passwd'.$level], $could);
+  return array('group', $group_read['passwd'.$level]);
  if (isset($DefaultPasswords[$level]))
-  return authPerms($pagename,$DefaultPasswords[$level], $could);
- return false;
+  return array('site', $DefaultPasswords[$level]);
+ return array('none', '');
 }
 
 function AuthPlatal($pagename, $level, $authprompt, $since)
@@ -45,13 +45,24 @@ function AuthPlatal($pagename, $level, $authprompt, $since)
  $groupattr = FmtPageName('$Group/GroupAttributes', $pagename);
  $group_read = ReadPage($groupattr, $since);
 
+ $levels = array('read', 'attr', 'edit', 'upload');
+
+ foreach ($levels as $l)
+ {
+  list($from, $pass) = TryAllAuths($pagename, $l, $page_read, $group_read);
+  $passwds[$l] = $pass;
+  $pwsources[$l] = $from;
+ }
  if (!isset($Conditions['canedit']))
- $Conditions['canedit'] = TryAllAuths($pagename, 'edit', $page_read, $group_read, true);
+ $Conditions['canedit'] = authPerms($pagename, $passwds['edit'], true);
  if (!isset($Conditions['canattr']))
- $Conditions['canattr'] = TryAllAuths($pagename, 'attr', $page_read, $group_read, true);
+ $Conditions['canattr'] = authPerms($pagename, $passwds['attr'], true);
 
- if (TryAllAuths($pagename, $level, $page_read, $group_read))
+ if (authPerms($pagename, $passwds[$level]))
  {
+   $page_read['=passwd'] = $passwds;
+   $page_read['=pwsource'] = $pwsources;
    return $page_read;
  }