summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-02-25 08:44:15 -0500
committerEvan Prodromou <evan@status.net>2010-02-25 08:44:15 -0500
commite6858d7203bd36923f6251968bede6f4b271bf84 (patch)
treedaf24ce51064058af226eb8e296476a3f9155473 /classes
parentddc3671b6aeb0b543d261251a1740a53469684c3 (diff)
modify group actions so they use Local_group to look up by nickname
Diffstat (limited to 'classes')
-rw-r--r--classes/Local_group.php29
-rw-r--r--classes/User_group.php68
2 files changed, 66 insertions, 31 deletions
diff --git a/classes/Local_group.php b/classes/Local_group.php
index 02663048f..42312ec63 100644
--- a/classes/Local_group.php
+++ b/classes/Local_group.php
@@ -2,9 +2,8 @@
/**
* Table Definition for local_group
*/
-require_once 'classes/Memcached_DataObject.php';
-class Local_group extends Memcached_DataObject
+class Local_group extends Memcached_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
@@ -16,8 +15,32 @@ class Local_group extends Memcached_DataObject
public $modified; // timestamp not_null default_CURRENT_TIMESTAMP
/* Static get */
- function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Local_group',$k,$v); }
+ function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Local_group',$k,$v); }
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
+
+ function sequenceKey()
+ {
+ return array(false, false, false);
+ }
+
+ function setNickname($nickname)
+ {
+ $this->decache();
+ $qry = 'UPDATE local_group set nickname = "'.$nickname.'" where group_id = ' . $this->group_id;
+
+ $result = $this->query($qry);
+
+ if ($result) {
+ $this->nickname = $nickname;
+ $this->fixupTimestamps();
+ $this->encache();
+ } else {
+ common_log_db_error($local, 'UPDATE', __FILE__);
+ throw new ServerException(_('Could not update local group.'));
+ }
+
+ return $result;
+ }
}
diff --git a/classes/User_group.php b/classes/User_group.php
index 6e58a4d67..5877ce202 100644
--- a/classes/User_group.php
+++ b/classes/User_group.php
@@ -10,16 +10,16 @@ class User_group extends Memcached_DataObject
public $__table = 'user_group'; // table name
public $id; // int(4) primary_key not_null
- public $nickname; // varchar(64)
- public $fullname; // varchar(255)
- public $homepage; // varchar(255)
- public $description; // text
- public $location; // varchar(255)
- public $original_logo; // varchar(255)
- public $homepage_logo; // varchar(255)
- public $stream_logo; // varchar(255)
- public $mini_logo; // varchar(255)
- public $design_id; // int(4)
+ public $nickname; // varchar(64)
+ public $fullname; // varchar(255)
+ public $homepage; // varchar(255)
+ public $description; // text
+ public $location; // varchar(255)
+ public $original_logo; // varchar(255)
+ public $homepage_logo; // varchar(255)
+ public $stream_logo; // varchar(255)
+ public $mini_logo; // varchar(255)
+ public $design_id; // int(4)
public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00
public $modified; // timestamp not_null default_CURRENT_TIMESTAMP
public $uri; // varchar(255) unique_key
@@ -414,28 +414,30 @@ class User_group extends Memcached_DataObject
$group->homepage = $homepage;
$group->description = $description;
$group->location = $location;
+ $group->uri = $uri;
$group->created = common_sql_now();
$result = $group->insert();
if (!$result) {
common_log_db_error($group, 'INSERT', __FILE__);
- $this->serverError(
- _('Could not create group.'),
- 500,
- $this->format
- );
- return;
+ throw new ServerException(_('Could not create group.'));
}
+
+ if (!isset($uri) || empty($uri)) {
+ $orig = clone($group);
+ $group->uri = common_local_url('groupbyid', array('id' => $group->id));
+ $result = $group->update($orig);
+ if (!$result) {
+ common_log_db_error($group, 'UPDATE', __FILE__);
+ throw new ServerException(_('Could not set group uri.'));
+ }
+ }
+
$result = $group->setAliases($aliases);
if (!$result) {
- $this->serverError(
- _('Could not create aliases.'),
- 500,
- $this->format
- );
- return;
+ throw new ServerException(_('Could not create aliases.'));
}
$member = new Group_member();
@@ -449,12 +451,22 @@ class User_group extends Memcached_DataObject
if (!$result) {
common_log_db_error($member, 'INSERT', __FILE__);
- $this->serverError(
- _('Could not set group membership.'),
- 500,
- $this->format
- );
- return;
+ throw new ServerException(_('Could not set group membership.'));
+ }
+
+ if ($local) {
+ $local_group = new Local_group();
+
+ $local_group->group_id = $group->id;
+ $local_group->nickname = $nickname;
+ $local_group->created = common_sql_now();
+
+ $result = $local_group->insert();
+
+ if (!$result) {
+ common_log_db_error($local_group, 'INSERT', __FILE__);
+ throw new ServerException(_('Could not save local group info.'));
+ }
}
$group->query('COMMIT');