aboutsummaryrefslogtreecommitdiff
path: root/engine/classes/ElggObject.php
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-21 01:45:21 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-21 01:45:21 +0000
commit25587657328ca8b492a497e385a2fc3887925848 (patch)
tree4cdbe86ac86cc9e658cdef254fb82ba447dea5f4 /engine/classes/ElggObject.php
parentbe812b46692dc21dc39932941f421aba32d59b7c (diff)
downloadelgg-25587657328ca8b492a497e385a2fc3887925848.tar.gz
elgg-25587657328ca8b492a497e385a2fc3887925848.tar.bz2
Fixes #2971 added canComment() method and implemented it for ElggBlog
git-svn-id: http://code.elgg.org/elgg/trunk@8381 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/classes/ElggObject.php')
-rw-r--r--engine/classes/ElggObject.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/engine/classes/ElggObject.php b/engine/classes/ElggObject.php
index c47cd217f..f71801144 100644
--- a/engine/classes/ElggObject.php
+++ b/engine/classes/ElggObject.php
@@ -184,4 +184,39 @@ class ElggObject extends ElggEntity {
'description',
));
}
+
+ /**
+ * Can a user comment on this object?
+ *
+ * @see ElggEntity::canComment()
+ *
+ * @param int $user_guid User guid (default is logged in user)
+ * @return bool
+ * @since 1.8.0
+ */
+ public function canComment($user_guid = 0) {
+ $result = parent::canComment($user_guid);
+ if ($result !== null) {
+ return $result;
+ }
+
+ if ($user_guid == 0) {
+ $user_guid = elgg_get_logged_in_user_guid();
+ }
+
+ // must be logged in to comment
+ if (!$user_guid) {
+ return false;
+ }
+
+ // must be member of group
+ if (elgg_instanceof($this->getContainerEntity(), 'group')) {
+ if (!$this->getContainerEntity()->isMember(get_user($user_guid))) {
+ return false;
+ }
+ }
+
+ // no checks on read access since a user cannot see entities outside his access
+ return true;
+ }
}