Slack channel can be overridden to post to another channel/private group or send direct messages. Need to make these database changes:
INSERT INTO settings VALUES ('integration_slack_webhook_channel', '');
ALTER TABLE project_integrations ADD COLUMN slack_webhook_channel text;
This commit is contained in:
@@ -38,6 +38,23 @@ class SlackWebhook extends \Core\Base
|
||||
$options = $this->projectIntegration->getParameters($project_id);
|
||||
return $options['slack_webhook_url'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get optional Slack channel
|
||||
*
|
||||
* @access public
|
||||
* @param integer $project_id
|
||||
* @return string
|
||||
*/
|
||||
public function getChannel($project_id)
|
||||
{
|
||||
if (!empty($this->config->get('integration_slack_webhook_channel'))) {
|
||||
return $this->config->get('integration_slack_webhook_channel');
|
||||
}
|
||||
|
||||
$options = $this->projectIntegration->getParameters($project_id);
|
||||
return $options['slack_webhook_channel'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Send message to the incoming Slack webhook
|
||||
@@ -68,6 +85,11 @@ class SlackWebhook extends \Core\Base
|
||||
$payload['text'] .= $this->helper->url->href('task', 'show', array('task_id' => $task_id, 'project_id' => $project_id));
|
||||
$payload['text'] .= '|'.t('view the task on Kanboard').'>';
|
||||
}
|
||||
|
||||
$channel = $this->getChannel($project_id);
|
||||
if (!empty($channel)) {
|
||||
$payload['channel'] = $channel;
|
||||
}
|
||||
|
||||
$this->httpClient->postJson($this->getWebhookUrl($project_id), $payload);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user