public function appendUGroups(DOMElement $ugroups, Project $project) { foreach ($this->ugroups as $id => $name) { $ugroup = $this->ugroup_manager->getUGroupWithMembers($project, $id); $ugroup_node = $this->createUGroupNode($ugroups, $id, $name); $this->appendMembersForStaticGroups($ugroup_node, $ugroup); } }
/** * Delete ugroup * * @return false if error */ function ugroup_delete($group_id, $ugroup_id) { global $Language; if (!$ugroup_id) { $GLOBALS['Response']->addFeedback('error', $Language->getText('project_admin_ugroup_utils', 'ug_not_given')); return false; } $project = ProjectManager::instance()->getProject($group_id); $ugroup_manager = new UGroupManager(); $ugroup = $ugroup_manager->getUGroupWithMembers($project, $ugroup_id); $sql = "DELETE FROM ugroup WHERE group_id=" . db_ei($group_id) . " AND ugroup_id=" . db_ei($ugroup_id); $result = db_query($sql); if (!$result || db_affected_rows($result) < 1) { $GLOBALS['Response']->addFeedback('error', $Language->getText('project_admin_editgroupinfo', 'upd_fail', db_error() ? db_error() : ' ')); return false; } $GLOBALS['Response']->addFeedback('info', $Language->getText('project_admin_ugroup_utils', 'g_del')); // Now remove users $sql = "DELETE FROM ugroup_user WHERE ugroup_id=" . db_ei($ugroup_id); $result = db_query($sql); if (!$result) { $GLOBALS['Response']->addFeedback('error', $Language->getText('project_admin_ugroup_utils', 'cant_remove_u', db_error())); return false; } $GLOBALS['Response']->addFeedback('info', $Language->getText('project_admin_ugroup_utils', 'all_u_removed')); // raise an event for ugroup deletion $em = EventManager::instance(); $em->processEvent('project_admin_ugroup_deletion', array('group_id' => $group_id, 'ugroup_id' => $ugroup_id, 'ugroup' => $ugroup)); // Last, remove permissions for this group $perm_cleared = permission_clear_ugroup($group_id, $ugroup_id); if (!$perm_cleared) { $GLOBALS['Response']->addFeedback('error', $Language->getText('project_admin_ugroup_utils', 'cant_remove_perm', db_error())); return false; } else { if ($perm_cleared > 1) { $perm_cleared--; $GLOBALS['Response']->addFeedback('warning', $Language->getText('project_admin_ugroup_utils', 'perm_warning', $perm_cleared)); } } // Now log in project history group_add_history('del_ug', '', $group_id, array($ugroup->getName())); return true; }
function news_send_to_ugroups($ugroups, $summary, $details, $group_id) { $hp = Codendi_HTMLPurifier::instance(); $pm = ProjectManager::instance(); $project = $pm->getProject($group_id); $user = HTTPRequest::instance()->getCurrentUser(); $ugroup_manager = new UGroupManager(); $summary = util_unconvert_htmlspecialchars($summary); $details = util_unconvert_htmlspecialchars($details); $html_body = '<h1>' . $hp->purify($summary, CODENDI_PURIFIER_BASIC) . '</h1>'; $html_body .= '<p>' . $hp->purify($details, CODENDI_PURIFIER_BASIC) . '</p>'; $users = array(); foreach ($ugroups as $ugroup_id) { $ugroup = $ugroup_manager->getUGroupWithMembers($project, $ugroup_id); foreach ($ugroup->getMembers() as $member) { $users[] = $member; } } $massmail_sender = new MassmailSender(); $is_sent = $massmail_sender->sendMassmail($project, $user, $summary, $html_body, $users); if ($is_sent) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('news_utils', 'news_sent')); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('news_utils', 'news_not_sent')); } }