Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
/**
 * 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;
}
Ejemplo n.º 3
0
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'));
    }
}