Don't use the domain part in login anymore.
[platal.git] / modules / newsletter.php
index 02efc32..6603bc8 100644 (file)
@@ -24,16 +24,16 @@ class NewsletterModule extends PLModule
     function handlers()
     {
         return array(
-            'nl'                           => $this->make_hook('nl',              AUTH_COOKIE),
-            'nl/show'                      => $this->make_hook('nl_show',         AUTH_COOKIE),
-            'nl/search'                    => $this->make_hook('nl_search',       AUTH_COOKIE),
-            'nl/submit'                    => $this->make_hook('nl_submit',       AUTH_MDP),
-            'nl/remaining'                 => $this->make_hook('nl_remaining',    AUTH_MDP),
-            'admin/nls'                    => $this->make_hook('admin_nl_groups', AUTH_MDP, 'admin'),
-            'admin/newsletter'             => $this->make_hook('admin_nl',        AUTH_MDP, 'admin'),
-            'admin/newsletter/categories'  => $this->make_hook('admin_nl_cat',    AUTH_MDP, 'admin'),
-            'admin/newsletter/edit'        => $this->make_hook('admin_nl_edit',   AUTH_MDP, 'admin'),
-            'admin/newsletter/edit/delete' => $this->make_hook('admin_nl_delete', AUTH_MDP, 'admin'),
+            'nl'                           => $this->make_hook('nl',              AUTH_COOKIE, 'user'),
+            'nl/show'                      => $this->make_hook('nl_show',         AUTH_COOKIE, 'user'),
+            'nl/search'                    => $this->make_hook('nl_search',       AUTH_COOKIE, 'user'),
+            'nl/submit'                    => $this->make_hook('nl_submit',       AUTH_MDP,    'user'),
+            'nl/remaining'                 => $this->make_hook('nl_remaining',    AUTH_MDP,    'user'),
+            'admin/nls'                    => $this->make_hook('admin_nl_groups', AUTH_MDP,    'admin'),
+            'admin/newsletter'             => $this->make_hook('admin_nl',        AUTH_MDP,    'admin'),
+            'admin/newsletter/categories'  => $this->make_hook('admin_nl_cat',    AUTH_MDP,    'admin'),
+            'admin/newsletter/edit'        => $this->make_hook('admin_nl_edit',   AUTH_MDP,    'admin'),
+            'admin/newsletter/edit/delete' => $this->make_hook('admin_nl_delete', AUTH_MDP,    'admin'),
             // Automatic mailing is disabled for X.org NL
 //            'admin/newsletter/edit/cancel' => $this->make_hook('cancel', AUTH_MDP, 'admin'),
 //            'admin/newsletter/edit/valid'  => $this->make_hook('valid',  AUTH_MDP, 'admin'),
@@ -55,16 +55,26 @@ class NewsletterModule extends PLModule
             return PL_NOT_FOUND;
         }
 
-        $page->changeTpl('newsletter/index.tpl');
-        $page->setTitle('Lettres mensuelles');
-
         $hash = ($hash == 'nohash') ? null : $hash;
         switch ($action) {
-          case 'out': $nl->unsubscribe($issue_id, $hash, $hash != null); break;
+          case 'out':
+            $success = $nl->unsubscribe($issue_id, $hash, $hash != null);
+            if (!is_null($hash)) {
+                if ($success) {
+                    $page->trigSuccess('La désinscription a été effectuée avec succès.');
+                } else {
+                    $page->trigError("La désinscription n'a été pas pu être effectuée.");
+                }
+                return;
+            }
+            break;
           case 'in':  $nl->subscribe(); break;
           default: ;
         }
 
+        $page->changeTpl('newsletter/index.tpl');
+        $page->setTitle('Lettres mensuelles');
+
         $page->assign_by_ref('nl', $nl);
         $page->assign('nls', $nl->subscriptionState());
         $page->assign('nl_list', $nl->listSentIssues(true));
@@ -103,7 +113,7 @@ class NewsletterModule extends PLModule
         }
 
         if (!Post::has('nl_search')) {
-            pl_redirect($nl->prefix());
+            pl_redirect($nl->prefix(true, false));
         }
 
         $nl_search = Post::t('nl_search');
@@ -199,7 +209,7 @@ class NewsletterModule extends PLModule
             S::logger()->log('nl_issue_create', $nid);
 
             $id = $nl->createPending();
-            pl_redirect($nl->adminPrefix() . '/edit/' . $id);
+            pl_redirect($nl->adminPrefix(true, false) . '/edit/' . $id);
         }
 
         $page->assign_by_ref('nl', $nl);
@@ -273,7 +283,7 @@ class NewsletterModule extends PLModule
         // Delete an article
         if($action == 'delete') {
             $issue->delArticle($aid);
-            pl_redirect($nl->adminPrefix() . "/edit/$nid");
+            pl_redirect($nl->adminPrefix(true, false) . "/edit/$nid");
         }
 
         // Save an article
@@ -281,7 +291,7 @@ class NewsletterModule extends PLModule
             $art  = new NLArticle(Post::v('title'), Post::v('body'), Post::v('append'),
                                   $aid, Post::v('cid'), Post::v('pos'));
             $issue->saveArticle($art);
-            pl_redirect($nl->adminPrefix() . "/edit/$nid");
+            pl_redirect($nl->adminPrefix(true, false) . "/edit/$nid");
         }
 
         // Edit an article
@@ -451,7 +461,7 @@ class NewsletterModule extends PLModule
             $table_editor->describe('nlid', 'ID NL', true);
         } else {
             $table_editor->force_field_value('nlid', $nl->id);
-            $table_editor->describe('nlid', 'nlid', false);
+            $table_editor->describe('nlid', 'nlid', false, false);
         }
         // Prevent deletion.
         $table_editor->on_delete(null, null);