[geeklog-hg] geeklog: If a staticpage belongs to a topic the user must have p...

geeklog-cvs at lists.geeklog.net geeklog-cvs at lists.geeklog.net
Tue Jul 3 10:00:46 EDT 2012


changeset 8766:be2659650a6d
url:  http://project.geeklog.net/cgi-bin/hgwebdir.cgi/geeklog/rev/be2659650a6d
user: Tom <websitemaster at cogeco.net>
date: Tue Jul 03 09:55:04 2012 -0400
description:
If a staticpage belongs to a topic the user must have permissions to view that topic before they can view the staticpage

diffstat:

 plugins/staticpages/services.inc.php |  29 +++++++++++++++++++++++------
 1 files changed, 23 insertions(+), 6 deletions(-)

diffs (56 lines):

diff -r 6eccbaccddb7 -r be2659650a6d plugins/staticpages/services.inc.php
--- a/plugins/staticpages/services.inc.php	Tue Jul 03 09:52:51 2012 -0400
+++ b/plugins/staticpages/services.inc.php	Tue Jul 03 09:55:04 2012 -0400
@@ -662,13 +662,28 @@
         if (! empty($perms)) {
             $perms = ' AND ' . $perms;
         }
+        
+        // Topic Permissions
+        $topic_perms = COM_getTopicSQL('', 0, 'ta');
+        if ($topic_perms != "") {
+            $topic_perms = " AND (" . $topic_perms . "";
+    
+            if (COM_onFrontpage()) {
+                $topic_perms .= " OR (ta.tid = '" . TOPIC_HOMEONLY_OPTION . "' OR ta.tid = '" . TOPIC_ALL_OPTION . "'))";
+            } else {
+                $topic_perms .= " OR ta.tid = '" . TOPIC_ALL_OPTION . "')";
+            }
+        }
+        $topic_perms .= " GROUP BY sp_id";        
+        
         $sql = array();
         $sql['mysql'] = "SELECT sp_title,sp_page_title,sp_content,sp_hits,created,modified,sp_format,"
                       . "commentcode,meta_description,meta_keywords,template_flag,template_id,draft_flag,"
                       . "owner_id,group_id,perm_owner,perm_group,"
                       . "perm_members,perm_anon,sp_help,sp_php,"
-                      . "sp_inblock FROM {$_TABLES['staticpage']} "
-                      . "WHERE (sp_id = '$page')" . $perms;
+                      . "sp_inblock FROM {$_TABLES['staticpage']}, {$_TABLES['topic_assignments']} ta "
+                      . "WHERE (sp_id = '$page')" . $perms
+                      . " AND ta.type = 'staticpages' AND ta.id = sp_id " . $topic_perms;
         $sql['mssql'] = "SELECT sp_title,sp_page_title,"
                       . "CAST(sp_content AS text) AS sp_content,sp_hits,"
                       . "created,modified,sp_format,commentcode,"
@@ -676,15 +691,17 @@
                       . "CAST(meta_keywords AS text) AS meta_keywords,template_flag,template_id,draft_flag,"
                       . "owner_id,group_id,perm_owner,perm_group,perm_members,"
                       . "perm_anon,sp_help,sp_php,sp_inblock "
-                      . "FROM {$_TABLES['staticpage']} WHERE (sp_id = '$page')"
-                      . $perms;
+                      . "FROM {$_TABLES['staticpage']}, {$_TABLES['topic_assignments']} ta WHERE (sp_id = '$page')"
+                      . $perms
+                      . " AND ta.type = 'staticpages' AND ta.id = sp_id " . $topic_perms;
         $sql['pgsql'] = "SELECT sp_title,sp_page_title,sp_content,sp_hits,"
                       . "created,modified,sp_format,"
                       . "commentcode,meta_description,meta_keywords,template_flag,template_id,draft_flag,"
                       . "owner_id,group_id,perm_owner,perm_group,"
                       . "perm_members,perm_anon,sp_help,sp_php,"
-                      . "sp_inblock FROM {$_TABLES['staticpage']} "
-                      . "WHERE (sp_id = '$page')" . $perms;
+                      . "sp_inblock FROM {$_TABLES['staticpage']}, {$_TABLES['topic_assignments']} ta "
+                      . "WHERE (sp_id = '$page')" . $perms
+                      . " AND ta.type = 'staticpages' AND ta.id = sp_id " . $topic_perms;
         $result = DB_query($sql);
         $count = DB_numRows($result);
 



More information about the geeklog-cvs mailing list