Ejemplo n.º 1
0
 function showTabMailAction()
 {
     @($group_id = DevblocksPlatform::importGPC($_REQUEST['id'], 'integer', 0));
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl_path = $this->_TPL_PATH;
     $tpl->assign('path', $tpl_path);
     $active_worker = CerberusApplication::getActiveWorker();
     if (!$active_worker->isTeamManager($group_id) && !$active_worker->is_superuser) {
         return;
     } else {
         $group = DAO_Group::getTeam($group_id);
         $tpl->assign('team', $group);
     }
     $team_categories = DAO_Bucket::getByTeam($group_id);
     $tpl->assign('categories', $team_categories);
     $group_settings = DAO_GroupSettings::getSettings($group_id);
     $tpl->assign('group_settings', $group_settings);
     @$tpl->assign('group_spam_threshold', $group_settings[DAO_GroupSettings::SETTING_SPAM_THRESHOLD]);
     @$tpl->assign('group_spam_action', $group_settings[DAO_GroupSettings::SETTING_SPAM_ACTION]);
     @$tpl->assign('group_spam_action_param', $group_settings[DAO_GroupSettings::SETTING_SPAM_ACTION_PARAM]);
     $tpl->display('file:' . $tpl_path . 'groups/manage/index.tpl');
 }
Ejemplo n.º 2
0
 public static function getHelpdeskSenders()
 {
     $cache = DevblocksPlatform::getCacheService();
     if (null === ($froms = $cache->load(self::CACHE_HELPDESK_FROMS))) {
         $froms = array();
         $settings = DevblocksPlatform::getPluginSettingsService();
         $group_settings = DAO_GroupSettings::getSettings();
         // Global sender
         $from = strtolower($settings->get('cerberusweb.core', CerberusSettings::DEFAULT_REPLY_FROM));
         @($froms[$from] = $from);
         // Group senders
         if (is_array($group_settings)) {
             foreach ($group_settings as $group_id => $gs) {
                 @($from = strtolower($gs[DAO_GroupSettings::SETTING_REPLY_FROM]));
                 if (!empty($from)) {
                     @($froms[$from] = $from);
                 }
             }
         }
         asort($froms);
         $cache->save($froms, self::CACHE_HELPDESK_FROMS);
     }
     return $froms;
 }
Ejemplo n.º 3
0
}
if (isset($columns['IS_ADMIN'])) {
    $sql = $datadict->DropColumnSQL('message', 'is_admin');
    $datadict->ExecuteSQLArray($sql);
}
if (!isset($columns['IS_OUTGOING'])) {
    $sql = $datadict->AddColumnSQL('message', 'is_outgoing I1 DEFAULT 0 NOTNULL');
    $datadict->ExecuteSQLArray($sql);
    // Gather Helpdesk/Group addresses
    try {
        $froms = array();
        $sql = sprintf("SELECT value FROM setting WHERE setting = %s", $db->qstr(CerberusSettings::DEFAULT_REPLY_FROM));
        if (null != ($default_from = $db->GetOne($sql))) {
            $froms[$default_from] = 1;
        }
        if (null != ($group_settings = DAO_GroupSettings::getSettings()) && is_array($group_settings)) {
            foreach ($group_settings as $group_id => $gs) {
                if (is_array($gs) && isset($gs[DAO_GroupSettings::SETTING_REPLY_FROM])) {
                    $group_from = $gs[DAO_GroupSettings::SETTING_REPLY_FROM];
                    if (!empty($group_from)) {
                        $froms[$group_from] = 1;
                    }
                }
            }
        }
        if (is_array($froms) && !empty($froms)) {
            $froms = array_keys($froms);
            $sql = sprintf("SELECT id FROM address WHERE email IN ('%s')", implode("','", $froms));
            $rs = $db->Execute($sql);
            while (!$rs->EOF) {
                $address_id = intval($rs->fields['id']);
Ejemplo n.º 4
0
 private function _handleTicketClosed($event)
 {
     @($ticket_ids = $event->params['ticket_ids']);
     @($changed_fields = $event->params['changed_fields']);
     // for anything other than setting is_closed = 1, we don't need to do anything
     // also don't send if the ticket is being deleted
     if (!isset($changed_fields[DAO_Ticket::IS_CLOSED]) || 1 != $changed_fields[DAO_Ticket::IS_CLOSED] || isset($changed_fields[DAO_Ticket::IS_DELETED]) && 1 == $changed_fields[DAO_Ticket::IS_DELETED]) {
         return;
     }
     $group_settings = DAO_GroupSettings::getSettings();
     if (!empty($ticket_ids)) {
         $tickets = DAO_Ticket::getTickets($ticket_ids);
         foreach ($tickets as $ticket) {
             /* @var $ticket CerberusTicket */
             if (!isset($group_settings[$ticket->team_id][DAO_GroupSettings::SETTING_CLOSE_REPLY_ENABLED])) {
                 continue;
             }
             if (1 == $ticket->is_deleted) {
                 continue;
             }
             if ($group_settings[$ticket->team_id][DAO_GroupSettings::SETTING_CLOSE_REPLY_ENABLED] && !empty($group_settings[$ticket->team_id][DAO_GroupSettings::SETTING_CLOSE_REPLY])) {
                 if (null != ($msg_first = DAO_Ticket::getMessage($ticket->first_message_id))) {
                     // First sender
                     $ticket_sender = '';
                     $ticket_sender_first = '';
                     if (null != ($sender_first = DAO_Address::get($msg_first->address_id))) {
                         $ticket_sender = $sender_first->email;
                         $ticket_sender_first = $sender_first->first_name;
                     }
                     // First body
                     $ticket_body = $msg_first->getContent();
                 }
                 CerberusMail::sendTicketMessage(array('ticket_id' => $ticket->id, 'message_id' => $ticket->first_message_id, 'content' => str_replace(array('#ticket_id#', '#mask#', '#subject#', '#timestamp#', '#sender#', '#sender_first#', '#orig_body#'), array($ticket->id, $ticket->mask, $ticket->subject, date('r'), $ticket_sender, $ticket_sender_first, ltrim($ticket_body)), $group_settings[$ticket->team_id][DAO_GroupSettings::SETTING_CLOSE_REPLY]), 'is_autoreply' => false, 'dont_keep_copy' => true));
             }
         }
     }
 }