From d0adba41685b8f997519ddade61d45b80871352f Mon Sep 17 00:00:00 2001 From: x2001corpet Date: Thu, 13 Oct 2005 07:27:57 +0000 Subject: [PATCH] affichage des droits d'acces dans Droits pour le wiki git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@95 839d8a87-29fc-0310-9880-83ba4fa771e5 --- plugins/pmwiki.config.php | 1 + plugins/pmwiki.platalAuth.php | 27 +++++++++++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/plugins/pmwiki.config.php b/plugins/pmwiki.config.php index 679f481..ad0856a 100644 --- a/plugins/pmwiki.config.php +++ b/plugins/pmwiki.config.php @@ -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. diff --git a/plugins/pmwiki.platalAuth.php b/plugins/pmwiki.platalAuth.php index ab384f2..0db1b40 100644 --- a/plugins/pmwiki.platalAuth.php +++ b/plugins/pmwiki.platalAuth.php @@ -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; } -- 2.1.4