X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=install%2Fcookbook%2Fxorgauth.php;h=9f201a6551045003da069272caba2819250615dc;hb=463f95218f5daf2b2aabe2b0f0020da9419e86f9;hp=4c32ee6a37e4ff862d00474691641e3c81325d2b;hpb=b1b3c24c28967c7218074ee4bba7d387d5181d20;p=wikifarm.git
diff --git a/install/cookbook/xorgauth.php b/install/cookbook/xorgauth.php
index 4c32ee6..9f201a6 100644
--- a/install/cookbook/xorgauth.php
+++ b/install/cookbook/xorgauth.php
@@ -39,7 +39,7 @@ Markup('xnetpage','inline','/\\(:xnetpage\\s*(.*?):\\)/e', "XnetPage('$1')");
function XnetPage($page) {
global $XnetWikiGroup;
if (!$XnetWikiGroup) return;
- return Keep('');
+ return Keep('');
}
// Récupère les droits au niveau du dossier (Group PmWiki)
@@ -86,7 +86,7 @@ function XorgAuthConnectPlatal() {
@session_start();
if (isset($_GET['auth']) && !$_SESSION['xorgauth'] && $_SESSION['challenge']) {
$tohash = '1'.$_SESSION['challenge'].'6e9c9fa9bac23541fe67697c4eff5be6';
- $fields = explode(',','forlife,nom,prenom,promo,grpauth');
+ $fields = explode(',','forlife,nom,prenom,promo,grpauth,perms');
foreach ($fields as $f) if (isset($_GET[$f])) {
$tohash .= $_GET[$f];
}
@@ -110,6 +110,10 @@ function XorgAuthTestPassword($password) {
if (!$password) {
return true;
}
+ if ($_SESSION['perms'] == 'admin') {
+ // administrateur du site d'authentification et donc super user ici aussi
+ return true;
+ }
$parts = explode(' ',$password);
foreach ($parts as $pass) {
if ($pass == 'all' || $pass == 'public') {
@@ -130,7 +134,8 @@ function XorgAuthTestPassword($password) {
}
return false;
}
-
+
+// test if user has admin rights on this wiki field
function XorgAuthIsSiteAdmin() {
global $DefaultPasswords;
return XorgAuthTestPassword($DefaultPasswords['admin']);
@@ -139,6 +144,7 @@ function XorgAuthIsSiteAdmin() {
// fonction d'authentification : appellée avant tout accès à une page
function XorgAuth($pagename, $level, $authprompt, $since) {
global $XnetWikiGroup;
+ // user was authenticaed to another site, but the site has changed
if (isset($_SESSION['authsite']) && $XnetWikiGroup != $_SESSION['authsite']) {
XorgAuthConnectPlatal();
return false;