X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=plugins%2Fpmwiki.platalAuth.php;h=0db1b40d6b8553ca54878a7ae158e3b8dae723b7;hb=d0adba41685b8f997519ddade61d45b80871352f;hp=ab384f2e928c3abd81a2b51df43bb6cfecb0c2e0;hpb=121cdae0b75c3131e88b1f47a06b14c5a06efb6e;p=platal.git 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; }