From 38b2efc44cf3345d97798e9637db241b05e2dded Mon Sep 17 00:00:00 2001
From: Tim Almdal
Date: Sat, 29 Aug 2009 11:43:10 -0700
Subject: Fix for 641... extend viewable functionality to comments. Viewable
unit test is not working.
---
modules/comment/helpers/comment_rss.php | 55 +++++++++++++++------------------
modules/comment/models/comment.php | 10 ++++++
2 files changed, 35 insertions(+), 30 deletions(-)
(limited to 'modules/comment')
diff --git a/modules/comment/helpers/comment_rss.php b/modules/comment/helpers/comment_rss.php
index ab3d2283..a8171ce7 100644
--- a/modules/comment/helpers/comment_rss.php
+++ b/modules/comment/helpers/comment_rss.php
@@ -33,42 +33,37 @@ class comment_rss_Core {
return;
}
- $comments = ORM::factory("comment")
- ->where("state", "published")
- ->orderby("created", "DESC");
- $all_comments = ORM::factory("comment")
+ $comment_model = ORM::factory("comment")
+ ->viewable()
->where("state", "published")
->orderby("created", "DESC");
if ($feed_id == "item") {
- $comments->where("item_id", $id);
- $all_comments->where("item_id", $id);
+ $comment_model->where("item_id", $id);
}
- if (!empty($comments)) {
- $feed->view = "comment.mrss";
- $comments = $comments->find_all($limit, $offset);
- $feed->children = array();
- foreach ($comments as $comment) {
- $item = $comment->item();
- $feed->children[] = new ArrayObject(
- array("pub_date" => date("D, d M Y H:i:s T", $comment->created),
- "text" => nl2br(p::purify($comment->text)),
- "thumb_url" => $item->thumb_url(),
- "thumb_height" => $item->thumb_height,
- "thumb_width" => $item->thumb_width,
- "item_uri" => url::abs_site("{$item->type}s/$item->id"),
- "title" => p::purify($item->title),
- "author" => p::clean($comment->author_name())),
- ArrayObject::ARRAY_AS_PROPS);
- }
+ $comments = $comment_model->find_all($limit, $offset);
+ $feed->view = "comment.mrss";
+ $feed->children = array();
+ foreach ($comments as $comment) {
+ $item = $comment->item();
+ $feed->children[] = new ArrayObject(
+ array("pub_date" => date("D, d M Y H:i:s T", $comment->created),
+ "text" => nl2br(p::purify($comment->text)),
+ "thumb_url" => $item->thumb_url(),
+ "thumb_height" => $item->thumb_height,
+ "thumb_width" => $item->thumb_width,
+ "item_uri" => url::abs_site("{$item->type}s/$item->id"),
+ "title" => p::purify($item->title),
+ "author" => p::clean($comment->author_name())),
+ ArrayObject::ARRAY_AS_PROPS);
+ }
- $feed->max_pages = ceil($all_comments->find_all()->count() / $limit);
- $feed->title = htmlspecialchars(t("Recent Comments"));
- $feed->uri = url::abs_site("albums/" . (empty($id) ? "1" : $id));
- $feed->description = t("Recent Comments");
+ $feed->max_pages = ceil($comment_model->count_all() / $limit);
+ $feed->title = htmlspecialchars(t("Recent Comments"));
+ $feed->uri = url::abs_site("albums/" . (empty($id) ? "1" : $id));
+ $feed->description = t("Recent Comments");
- return $feed;
- }
+ return $feed;
}
-}
\ No newline at end of file
+}
diff --git a/modules/comment/models/comment.php b/modules/comment/models/comment.php
index 83d0888a..de9b0cd6 100644
--- a/modules/comment/models/comment.php
+++ b/modules/comment/models/comment.php
@@ -80,4 +80,14 @@ class Comment_Model extends ORM {
return $this;
}
+
+ /**
+ * Add a set of restrictions to any following queries to restrict access only to items
+ * viewable by the active user.
+ * @chainable
+ */
+ public function viewable() {
+ $this->join("items", "items.id", "comments.item_id");
+ return item::viewable($this);
+ }
}
--
cgit v1.2.3
From d85a8b20bbe0a5be0a03da70354169d41f418d41 Mon Sep 17 00:00:00 2001
From: Bharat Mediratta
Date: Sat, 29 Aug 2009 11:48:49 -0700
Subject: Rename $comment_model to $comments.
---
modules/comment/helpers/comment_rss.php | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
(limited to 'modules/comment')
diff --git a/modules/comment/helpers/comment_rss.php b/modules/comment/helpers/comment_rss.php
index a8171ce7..e233de59 100644
--- a/modules/comment/helpers/comment_rss.php
+++ b/modules/comment/helpers/comment_rss.php
@@ -33,16 +33,16 @@ class comment_rss_Core {
return;
}
- $comment_model = ORM::factory("comment")
+ $comments = ORM::factory("comment")
->viewable()
->where("state", "published")
->orderby("created", "DESC");
if ($feed_id == "item") {
- $comment_model->where("item_id", $id);
+ $comments->where("item_id", $id);
}
- $comments = $comment_model->find_all($limit, $offset);
+ $comments = $comments->find_all($limit, $offset);
$feed->view = "comment.mrss";
$feed->children = array();
foreach ($comments as $comment) {
@@ -59,7 +59,7 @@ class comment_rss_Core {
ArrayObject::ARRAY_AS_PROPS);
}
- $feed->max_pages = ceil($comment_model->count_all() / $limit);
+ $feed->max_pages = ceil($comments->count_all() / $limit);
$feed->title = htmlspecialchars(t("Recent Comments"));
$feed->uri = url::abs_site("albums/" . (empty($id) ? "1" : $id));
$feed->description = t("Recent Comments");
--
cgit v1.2.3
From cd1fd4989f394f6e8084b8101a8dbdb3030c52aa Mon Sep 17 00:00:00 2001
From: Bharat Mediratta
Date: Sat, 29 Aug 2009 12:22:00 -0700
Subject: Add a test for Comment_Model::viewable().
---
modules/comment/tests/Comment_Model_Test.php | 40 ++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 modules/comment/tests/Comment_Model_Test.php
(limited to 'modules/comment')
diff --git a/modules/comment/tests/Comment_Model_Test.php b/modules/comment/tests/Comment_Model_Test.php
new file mode 100644
index 00000000..f4c68b15
--- /dev/null
+++ b/modules/comment/tests/Comment_Model_Test.php
@@ -0,0 +1,40 @@
+assert_equal(
+ 1,
+ ORM::factory("comment")->viewable()->where("comments.id", $comment->id)->count_all());
+
+ // We can't see the comment when permissions are denied on the album
+ access::deny(group::everybody(), "view", $album);
+ $this->assert_equal(
+ 0,
+ ORM::factory("comment")->viewable()->where("comments.id", $comment->id)->count_all());
+ }
+}
--
cgit v1.2.3
From 5db0b68a70434a16d8881a6e560a9526530a8a60 Mon Sep 17 00:00:00 2001
From: Chad Kieffer
Date: Sat, 29 Aug 2009 14:01:04 -0600
Subject: Update status message styles. Lighten backgrounds, don't show
background on Admin Maintenance rows, and added gModuleStatus class.
---
modules/akismet/views/admin_akismet.html.php | 2 +-
modules/comment/views/admin_comments.html.php | 2 +-
modules/gallery/views/admin_graphics_gd.html.php | 12 ++--
.../views/admin_graphics_graphicsmagick.html.php | 10 +--
.../views/admin_graphics_imagemagick.html.php | 10 +--
modules/gallery/views/admin_graphics_none.html.php | 5 +-
modules/gallery/views/admin_maintenance.html.php | 16 +++--
modules/gallery/views/admin_modules.html.php | 2 +-
themes/admin_default/css/admin_screen.css | 9 ++-
themes/admin_default/css/screen.css | 80 ++++++++++------------
themes/default/css/screen.css | 60 +++++-----------
11 files changed, 92 insertions(+), 116 deletions(-)
(limited to 'modules/comment')
diff --git a/modules/akismet/views/admin_akismet.html.php b/modules/akismet/views/admin_akismet.html.php
index 410902a5..009d8810 100644
--- a/modules/akismet/views/admin_akismet.html.php
+++ b/modules/akismet/views/admin_akismet.html.php
@@ -8,7 +8,7 @@
if ($valid_key): ?>
-
+
= t("Your API Key is valid. Your comments will be filtered!") ?>
endif ?>
diff --git a/modules/comment/views/admin_comments.html.php b/modules/comment/views/admin_comments.html.php
index 9fe7164b..03511d91 100644
--- a/modules/comment/views/admin_comments.html.php
+++ b/modules/comment/views/admin_comments.html.php
@@ -103,7 +103,7 @@
foreach ($comments as $i => $comment): ?>
-
$i = 0 ?>
foreach ($available as $module_name => $module_info): ?>
-
">
+
">
$data = array("name" => $module_name); ?>
if ($module_info->locked) $data["disabled"] = 1; ?>
| = form::checkbox($data, '1', module::is_active($module_name)) ?> |
diff --git a/themes/admin_default/css/admin_screen.css b/themes/admin_default/css/admin_screen.css
index 913631dc..7e468442 100644
--- a/themes/admin_default/css/admin_screen.css
+++ b/themes/admin_default/css/admin_screen.css
@@ -35,13 +35,12 @@
.gSelected img,
.gAvailable .gBlock img {
float: left;
- margin-right: 1em;
+ margin: 0 1em 1em 0;
}
.rtl .gSelected img,
.rtl .gAvailable .gBlock img {
float: right;
- margin-left: 1em;
}
.gSelected {
@@ -202,7 +201,7 @@
#gAdminGraphics .gAvailable .gBlock {
clear: none;
float: left;
- height: 16em;
+ height: 17em;
margin-right: 1em;
width: 30%;
}
@@ -263,8 +262,8 @@ li.gGroup {
}
li.gGroup h4 {
- background-color: #EEEEEE;
- border-bottom: 1px dashed #CCCCCC;
+ background-color: #eee;
+ border-bottom: 1px dashed ccc;
padding: .5em 0 .5em .5em;
}
li.gGroup .gButtonLink {
diff --git a/themes/admin_default/css/screen.css b/themes/admin_default/css/screen.css
index 062c0e41..c275eb10 100644
--- a/themes/admin_default/css/screen.css
+++ b/themes/admin_default/css/screen.css
@@ -108,7 +108,7 @@ table {
}
#gContent table {
- margin: 1em 0;
+ margin: 1em 0 3em 0;
}
caption,
@@ -124,6 +124,10 @@ td {
vertical-align: top;
}
+#gAdminMaintenance td {
+ vertical-align: middle;
+}
+
/* Forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
fieldset {
@@ -279,9 +283,9 @@ li.gError select {
width: 100%;
}
-#gAdminAkismet .gSuccess,
#gSiteStatus li,
-#gMessage li {
+#gMessage li,
+.gModuleStatus {
border: 1px solid #ccc;
margin-bottom: .4em;
}
@@ -292,71 +296,62 @@ li.gError select {
border-bottom: 1px solid #ccc;
}
-#gSiteStatus .gError,
-#gMessage .gError,
-form p.gError,
-#gSiteStatus .gInfo,
-#gMessage .gInfo,
-#gSiteStatus .gSuccess,
-#gMessage .gSuccess,
-#gSiteStatus .gWarning,
-#gMessage .gWarning {
+.gModuleStatus {
+ clear: both;
+ margin-bottom: 1em;
+}
+
+.gError,
+.gInfo,
+.gSuccess,
+.gWarning {
background-position: .4em 50%;
background-repeat: no-repeat;
padding: .4em .5em .4em 30px;
}
.gError {
- background-color: #fcc;
-}
-
-form .gError {
- color: #f00;
-}
-
-#gSiteStatus .gError,
-#gMessage .gError,
-form p.gError {
+ background-color: #f6cbca;
+ color: red;
background-image: url('../images/ico-error.png');
}
.gInfo {
background-color: #e8e8e8;
-}
-
-#gSiteStatus .gInfo,
-#gMessage .gInfo {
background-image: url('../images/ico-info.png');
}
.gSuccess {
- background-color: #96EF95;
-}
-
-#gSiteStatus .gSuccess,
-#gMessage .gSuccess {
+ background-color: #d9efc2;
background-image: url('../images/ico-success.png');
}
.gWarning {
- background-color: #ff9;
+ background-color: #fcf9ce;
+ background-image: url('../images/ico-warning.png');
}
-#gSiteStatus .gWarning,
-#gMessage .gWarning {
- background-image: url('../images/ico-warning.png');
+table .gError {
+ background-color: #f6cbca !important;
+}
+
+table .gWarning {
+ background-color: #fcf9ce !important;
}
+.gPager .gInfo,
form .gError,
-.gPager .gInfo {
- background-color: #fff;
+table .gInfo,
+table .gSuccess {
+ background-color: transparent !important;
}
-#gAdminMaintenance .gError,
-#gAdminMaintenance .gInfo,
-#gAdminMaintenance .gWarning,
-#gAdminMaintenance .gSuccess {
- background-image: none;
+.gPager .gInfo,
+table .gError,
+table .gInfo,
+table .gSuccess,
+table .gWarning {
+ background-image: none !important;
}
/* Inline layout (forms, lists) ~~~~~~~~~~ */
@@ -823,7 +818,6 @@ form .gError,
.ui-widget-overlay {
background: #000;
opacity: .7;
- filter: Alpha(Opacity=70);
}
#gDialog {
diff --git a/themes/default/css/screen.css b/themes/default/css/screen.css
index d39152e4..82cdb331 100644
--- a/themes/default/css/screen.css
+++ b/themes/default/css/screen.css
@@ -279,9 +279,9 @@ li.gError select {
width: 100%;
}
-#gAdminAkismet .gSuccess,
#gSiteStatus li,
-#gMessage li {
+#gMessage li,
+.gModuleStatus {
border: 1px solid #ccc;
margin-bottom: .4em;
}
@@ -292,71 +292,49 @@ li.gError select {
border-bottom: 1px solid #ccc;
}
-#gSiteStatus .gError,
-#gMessage .gError,
-form p.gError,
-#gSiteStatus .gInfo,
-#gMessage .gInfo,
-#gSiteStatus .gSuccess,
-#gMessage .gSuccess,
-#gSiteStatus .gWarning,
-#gMessage .gWarning {
+.gModuleStatus {
+ clear: both;
+ margin-bottom: 1em;
+}
+
+.gError,
+.gInfo,
+.gSuccess,
+.gWarning {
background-position: .4em 50%;
background-repeat: no-repeat;
padding: .4em .5em .4em 30px;
}
.gError {
- background-color: #fcc;
-}
-
-form .gError {
- color: #f00;
-}
-
-#gSiteStatus .gError,
-#gMessage .gError,
-form p.gError {
+ background-color: #f6cbca;
+ color: #fc0;
background-image: url('../images/ico-error.png');
}
.gInfo {
background-color: #e8e8e8;
-}
-
-#gSiteStatus .gInfo,
-#gMessage .gInfo {
background-image: url('../images/ico-info.png');
}
.gSuccess {
- background-color: #96EF95;
-}
-
-#gSiteStatus .gSuccess,
-#gMessage .gSuccess {
+ background-color: #d9efc2;
background-image: url('../images/ico-success.png');
}
.gWarning {
- background-color: #ff9;
-}
-
-#gSiteStatus .gWarning,
-#gMessage .gWarning {
+ background-color: #fcf9ce;
background-image: url('../images/ico-warning.png');
}
form .gError,
.gPager .gInfo {
- background-color: #fff;
+ background-color: #fff !important;
}
-#gAdminMaintenance .gError,
-#gAdminMaintenance .gInfo,
-#gAdminMaintenance .gWarning,
-#gAdminMaintenance .gSuccess {
- background-image: none;
+.gPager .gInfo {
+ background-image: none !important;
+ padding: 0 !important;
}
/* Inline layout (forms, lists) ~~~~~~~~~~ */
--
cgit v1.2.3