summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlyourself.ca>2009-06-14 16:17:44 -0700
committerEvan Prodromou <evan@controlyourself.ca>2009-06-14 16:17:44 -0700
commitf8da15bf41b07a46b1fbe5323e2b8136d42c5b31 (patch)
tree987d684517add55c4f344031dc2f1a1fa589375f /classes
parentbd26a80d45542c6b42f56ecf5472198f4600618b (diff)
Allow users to be unblocked from a group
List users who are blocked from joining a group. Add a form to let them be unblocked. Add an action that removes the block. Includes changes to group and groupblock classes.
Diffstat (limited to 'classes')
-rw-r--r--classes/Group_block.php20
-rw-r--r--classes/User_group.php23
2 files changed, 43 insertions, 0 deletions
diff --git a/classes/Group_block.php b/classes/Group_block.php
index d945fd57a..4c583d8e2 100644
--- a/classes/Group_block.php
+++ b/classes/Group_block.php
@@ -92,4 +92,24 @@ class Group_block extends Memcached_DataObject
return $block;
}
+
+ static function unblockProfile($group, $profile)
+ {
+ $block = Group_block::pkeyGet(array('group_id' => $group->id,
+ 'blocked' => $profile->id));
+
+ if (empty($block)) {
+ return null;
+ }
+
+ $result = $block->delete();
+
+ if (!$result) {
+ common_log_db_error($block, 'DELETE', __FILE__);
+ return null;
+ }
+
+ return true;
+ }
+
}
diff --git a/classes/User_group.php b/classes/User_group.php
index 1be34b60b..9f9977755 100644
--- a/classes/User_group.php
+++ b/classes/User_group.php
@@ -125,6 +125,29 @@ class User_group extends Memcached_DataObject
return $members;
}
+ function getBlocked($offset=0, $limit=null)
+ {
+ $qry =
+ 'SELECT profile.* ' .
+ 'FROM profile JOIN group_block '.
+ 'ON profile.id = group_block.blocked ' .
+ 'WHERE group_block.group_id = %d ' .
+ 'ORDER BY group_block.modified DESC ';
+
+ if ($limit != null) {
+ if (common_config('db','type') == 'pgsql') {
+ $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
+ } else {
+ $qry .= ' LIMIT ' . $offset . ', ' . $limit;
+ }
+ }
+
+ $blocked = new Profile();
+
+ $blocked->query(sprintf($qry, $this->id));
+ return $blocked;
+ }
+
function setOriginal($filename)
{
$imagefile = new ImageFile($this->id, Avatar::path($filename));