Bye bye core_rss_hash.
[platal.git] / modules / admin.php
index b0bad9a..9534e99 100644 (file)
@@ -25,6 +25,7 @@ class AdminModule extends PLModule
     {
         return array(
             'phpinfo'                      => $this->make_hook('phpinfo', AUTH_MDP, 'admin'),
+            'get_rights'                   => $this->make_hook('get_rights', AUTH_MDP, 'admin'),
             'admin'                        => $this->make_hook('default', AUTH_MDP, 'admin'),
             'admin/ax-xorg'                => $this->make_hook('ax_xorg', AUTH_MDP, 'admin'),
             'admin/dead-but-active'        => $this->make_hook('dead_but_active', AUTH_MDP, 'admin'),
@@ -57,6 +58,17 @@ class AdminModule extends PLModule
         exit;
     }
 
+    function handler_get_rights(&$page, $level)
+    {
+        if (S::suid()) {
+            $page->kill('Déjà en SUID');
+        }
+        $user =& S::user();
+        Platal::session()->startSUID($user, $level);
+
+        pl_redirect('/');
+    }
+
     function handler_default(&$page)
     {
         $page->changeTpl('admin/index.tpl');
@@ -358,7 +370,7 @@ class AdminModule extends PLModule
         $page->setTitle('Administration - Edit/Su/Log');
         require_once("emails.inc.php");
 
-        if (S::has('suid')) {
+        if (S::suid()) {
             $page->kill("Déjà en SUID !!!");
         }
 
@@ -388,8 +400,7 @@ class AdminModule extends PLModule
         }
 
         if(Env::has('suid_button') && $registered) {
-            S::logger()->log("suid_start", "login on " . $user->login());
-            if (!Platal::session()->startSUID($user->id())) {
+            if (!Platal::session()->startSUID($user)) {
                 $page->trigError('Impossible d\'effectuer un SUID sur ' . $user->id());
             } else {
                 pl_redirect("");
@@ -518,8 +529,7 @@ class AdminModule extends PLModule
                 // Profile edition.
                 case "u_edit":
                     // Loads new values from environment.
-                    require_once('secure_hash.inc.php');
-                    $pass_encrypted = Env::v('newpass_clair') != "********" ? hash_encrypt(Env::v('newpass_clair')) : Env::v('passw');
+                    $pass_encrypted = Env::v('newpass_clair') != "********" ? sha1(Env::v('newpass_clair')) : Env::v('passw');
                     $naiss    = Env::v('naissanceN');
                     $deces    = Env::v('decesN');
                     $perms    = Env::v('permsN');
@@ -1053,9 +1063,9 @@ class AdminModule extends PLModule
 
     function handler_wiki(&$page, $action = 'list', $wikipage = null, $wikipage2 = null)
     {
-        if (S::v('core_rss_hash')) {
+        if (S::hasAuthToken()) {
            $page->setRssLink('Changement Récents',
-                             '/Site/AllRecentChanges?action=rss&user=' . S::v('hruid') . '&hash=' . S::v('core_rss_hash'));
+                             '/Site/AllRecentChanges?action=rss&user=' . S::v('hruid') . '&hash=' . S::v('token'));
         }
 
         // update wiki perms