示例#1
0
文件: groups.php 项目: Hildy/cerb5
 function saveTabMailAction()
 {
     @($team_id = DevblocksPlatform::importGPC($_REQUEST['team_id'], 'integer'));
     @($active_worker = CerberusApplication::getActiveWorker());
     if (!$active_worker->isTeamManager($team_id) && !$active_worker->is_superuser) {
         return;
     }
     // Validators
     // [TODO] This could move into a Devblocks validation class later.
     $validator_email = new Zend_Validate_EmailAddress(Zend_Validate_Hostname::ALLOW_DNS | Zend_Validate_Hostname::ALLOW_LOCAL);
     //========== GENERAL
     @($signature = DevblocksPlatform::importGPC($_REQUEST['signature'], 'string', ''));
     @($auto_reply_enabled = DevblocksPlatform::importGPC($_REQUEST['auto_reply_enabled'], 'integer', 0));
     @($auto_reply = DevblocksPlatform::importGPC($_REQUEST['auto_reply'], 'string', ''));
     @($close_reply_enabled = DevblocksPlatform::importGPC($_REQUEST['close_reply_enabled'], 'integer', 0));
     @($close_reply = DevblocksPlatform::importGPC($_REQUEST['close_reply'], 'string', ''));
     @($sender_address = DevblocksPlatform::importGPC($_REQUEST['sender_address'], 'string', ''));
     @($sender_personal = DevblocksPlatform::importGPC($_REQUEST['sender_personal'], 'string', ''));
     @($sender_personal_with_worker = DevblocksPlatform::importGPC($_REQUEST['sender_personal_with_worker'], 'integer', 0));
     @($subject_has_mask = DevblocksPlatform::importGPC($_REQUEST['subject_has_mask'], 'integer', 0));
     @($subject_prefix = DevblocksPlatform::importGPC($_REQUEST['subject_prefix'], 'string', ''));
     @($spam_threshold = DevblocksPlatform::importGPC($_REQUEST['spam_threshold'], 'integer', 80));
     @($spam_action = DevblocksPlatform::importGPC($_REQUEST['spam_action'], 'integer', 0));
     @($spam_moveto = DevblocksPlatform::importGPC($_REQUEST['spam_action_moveto'], 'integer', 0));
     // Validate sender address
     if (!$validator_email->isValid($sender_address)) {
         $sender_address = '';
     }
     // [TODO] Move this into DAO_GroupSettings
     DAO_Group::updateTeam($team_id, array(DAO_Group::TEAM_SIGNATURE => $signature));
     // [TODO] Verify the sender address has been used in a 'To' header in the past
     // select count(header_value) from message_header where header_name = 'to' AND (header_value = '*****@*****.**' OR header_value = '<*****@*****.**>');
     // DAO_MessageHeader::
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_REPLY_FROM, $sender_address);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_REPLY_PERSONAL, $sender_personal);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_REPLY_PERSONAL_WITH_WORKER, $sender_personal_with_worker);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SUBJECT_HAS_MASK, $subject_has_mask);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SUBJECT_PREFIX, $subject_prefix);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SPAM_THRESHOLD, $spam_threshold);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SPAM_ACTION, $spam_action);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SPAM_ACTION_PARAM, $spam_moveto);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_AUTO_REPLY_ENABLED, $auto_reply_enabled);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_AUTO_REPLY, $auto_reply);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_CLOSE_REPLY_ENABLED, $close_reply_enabled);
     DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_CLOSE_REPLY, $close_reply);
     DevblocksPlatform::redirect(new DevblocksHttpResponse(array('groups', $team_id)));
 }
示例#2
0
文件: config.php 项目: Hildy/cerb5
 function saveTeamAction()
 {
     $translate = DevblocksPlatform::getTranslationService();
     $worker = CerberusApplication::getActiveWorker();
     if (!$worker || !$worker->is_superuser) {
         echo $translate->_('common.access_denied');
         return;
     }
     if (DEMO_MODE) {
         DevblocksPlatform::setHttpResponse(new DevblocksHttpResponse(array('config', 'workflow')));
         return;
     }
     @($id = DevblocksPlatform::importGPC($_POST['id']));
     @($name = DevblocksPlatform::importGPC($_POST['name']));
     @($delete = DevblocksPlatform::importGPC($_POST['delete_box']));
     @($delete_move_id = DevblocksPlatform::importGPC($_POST['delete_move_id'], 'integer', 0));
     if (empty($name)) {
         $name = "No Name";
     }
     if (!empty($id) && !empty($delete)) {
         if (!empty($delete_move_id)) {
             $fields = array(DAO_Ticket::TEAM_ID => $delete_move_id);
             $where = sprintf("%s=%d", DAO_Ticket::TEAM_ID, $id);
             DAO_Ticket::updateWhere($fields, $where);
             DAO_Group::deleteTeam($id);
         }
     } elseif (!empty($id)) {
         $fields = array(DAO_Group::TEAM_NAME => $name);
         DAO_Group::updateTeam($id, $fields);
     } else {
         $fields = array(DAO_Group::TEAM_NAME => $name);
         $id = DAO_Group::createTeam($fields);
     }
     @($worker_ids = DevblocksPlatform::importGPC($_POST['worker_ids'], 'array', array()));
     @($worker_levels = DevblocksPlatform::importGPC($_POST['worker_levels'], 'array', array()));
     @($members = DAO_Group::getTeamMembers($id));
     if (is_array($worker_ids) && !empty($worker_ids)) {
         foreach ($worker_ids as $idx => $worker_id) {
             @($level = $worker_levels[$idx]);
             if (isset($members[$worker_id]) && empty($level)) {
                 DAO_Group::unsetTeamMember($id, $worker_id);
             } elseif (!empty($level)) {
                 // member|manager
                 DAO_Group::setTeamMember($id, $worker_id, 1 == $level ? false : true);
             }
         }
     }
     DevblocksPlatform::setHttpResponse(new DevblocksHttpResponse(array('config', 'groups')));
 }
示例#3
0
文件: index.php 项目: rmiddle/cerb4
     // Support Group
     $support_gid = DAO_Group::createTeam(array(DAO_Group::TEAM_NAME => 'Support'));
     // Support Spam Bucket
     $support_spam_bid = DAO_Bucket::create('Spam', $support_gid);
     DAO_GroupSettings::set($support_gid, DAO_GroupSettings::SETTING_SPAM_ACTION, '2');
     DAO_GroupSettings::set($support_gid, DAO_GroupSettings::SETTING_SPAM_ACTION_PARAM, $support_spam_bid);
     DAO_GroupSettings::set($support_gid, DAO_GroupSettings::SETTING_SPAM_THRESHOLD, '85');
     // Sales Group
     $sales_gid = DAO_Group::createTeam(array(DAO_Group::TEAM_NAME => 'Sales'));
     // Sales Spam Bucket
     $sales_spam_bid = DAO_Bucket::create('Spam', $sales_gid);
     DAO_GroupSettings::set($sales_gid, DAO_GroupSettings::SETTING_SPAM_ACTION, '2');
     DAO_GroupSettings::set($sales_gid, DAO_GroupSettings::SETTING_SPAM_ACTION_PARAM, $sales_spam_bid);
     DAO_GroupSettings::set($sales_gid, DAO_GroupSettings::SETTING_SPAM_THRESHOLD, '85');
     // Default catchall
     DAO_Group::updateTeam($dispatch_gid, array(DAO_Group::IS_DEFAULT => 1));
 }
 // If this worker doesn't exist, create them
 if (null === ($lookup = DAO_Worker::lookupAgentEmail($worker_email))) {
     $worker_id = DAO_Worker::create($worker_email, $worker_pass, 'Super', 'User', 'Administrator');
     // Superuser bit
     $fields = array(DAO_Worker::IS_SUPERUSER => 1);
     DAO_Worker::updateAgent($worker_id, $fields);
     // Add the worker e-mail to the addresses table
     if (!empty($worker_email)) {
         DAO_Address::lookupAddress($worker_email, true);
     }
     // Authorize this e-mail address (watchers, etc.)
     DAO_AddressToWorker::assign($worker_email, $worker_id);
     DAO_AddressToWorker::update($worker_email, array(DAO_AddressToWorker::IS_CONFIRMED => 1));
     // Default group memberships