[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