/** * Delete this group from the database, along with any linked user and authorization rules * * @see DatabaseInterface */ public function delete() { // Can only delete an object where `id` is set if (!$this->_id) { return false; } $result = parent::delete(); // Get connection $db = static::connection(); $link_table = static::getTable('group_user')->name; $auth_table = static::getTable('authorize_group')->name; $sqlVars[":id"] = $this->_id; $query = "\n DELETE FROM `{$link_table}`\n WHERE group_id = :id"; $stmt = $db->prepare($query); $stmt->execute($sqlVars); $query = "\n DELETE FROM `{$auth_table}`\n WHERE group_id = :id"; $stmt = $db->prepare($query); $stmt->execute($sqlVars); // Reassign any primary users to the current default primary group $default_primary_group = GroupLoader::fetch(GROUP_DEFAULT_PRIMARY, 'is_default'); $user_table = static::getTable('user')->name; $query = "\n UPDATE `{$user_table}` \n SET primary_group_id = :primary_group_id\n WHERE primary_group_id = :current_id;"; $sqlVars = [":primary_group_id" => $default_primary_group->id, ":current_id" => $this->_id]; $stmt = $db->prepare($query); $stmt->execute($sqlVars); // TODO: assign user to the default primary group as well? return $result; }
public function delete() { // Can only delete an object where `id` is set if (!$this->_id) { return false; } // Delete the record itself $result = parent::delete(); // Get connection $db = static::connection(); $link_table = static::getTable('votes_bud')->name; // Delete the links $sqlVars[":id"] = $this->_id; $query = "\n DELETE FROM `{$link_table}`\n WHERE bud_id = :id"; $stmt = $db->prepare($query); $stmt->execute($sqlVars); return $result; }
public function delete() { // Can only delete an object where `id` is set if (!$this->_id) { return false; } $result = parent::delete(); // Get connection $db = static::connection(); $link_table = static::getTableGroupUser(); $auth_table = static::getTableAuthorizeUser(); $sqlVars[":id"] = $this->_id; $query = "\n DELETE FROM `{$link_table}`\n WHERE user_id = :id"; $stmt = $db->prepare($query); $stmt->execute($sqlVars); $query = "\n DELETE FROM `{$auth_table}`\n WHERE user_id = :id"; $stmt = $db->prepare($query); $stmt->execute($sqlVars); return $result; }