diff --git a/app/Formatter/TaskICalFormatter.php b/app/Formatter/TaskICalFormatter.php index abe595f..d86d09c 100644 --- a/app/Formatter/TaskICalFormatter.php +++ b/app/Formatter/TaskICalFormatter.php @@ -133,7 +133,7 @@ class TaskICalFormatter extends BaseFormatter implements FormatterInterface if (! empty($task['owner_id'])) { $attendees = new Attendees; $attendees->add( - 'MAILTO:'.($task['assignee_email'] ?: $task['assignee_username'].'@kanboard.local'), + 'MAILTO:'.$task['assignee_username'].'@kanboard.local', array('CN' => $task['assignee_name'] ?: $task['assignee_username']) ); $vEvent->setAttendees($attendees); @@ -141,7 +141,7 @@ class TaskICalFormatter extends BaseFormatter implements FormatterInterface if (! empty($task['creator_id'])) { $vEvent->setOrganizer(new Organizer( - 'MAILTO:' . $task['creator_email'] ?: $task['creator_username'].'@kanboard.local', + 'MAILTO:'.$task['creator_username'].'@kanboard.local', array('CN' => $task['creator_name'] ?: $task['creator_username']) )); } diff --git a/app/Model/TaskFinderModel.php b/app/Model/TaskFinderModel.php index 6cf787d..61397fc 100644 --- a/app/Model/TaskFinderModel.php +++ b/app/Model/TaskFinderModel.php @@ -320,10 +320,8 @@ class TaskFinderModel extends Base ->left(UserModel::TABLE, 'uc', 'id', TaskModel::TABLE, 'creator_id') ->columns( TaskModel::TABLE.'.*', - 'ua.email AS assignee_email', 'ua.name AS assignee_name', 'ua.username AS assignee_username', - 'uc.email AS creator_email', 'uc.name AS creator_name', 'uc.username AS creator_username' ); diff --git a/tests/units/Formatter/TaskICalFormatterTest.php b/tests/units/Formatter/TaskICalFormatterTest.php new file mode 100644 index 0000000..91bae40 --- /dev/null +++ b/tests/units/Formatter/TaskICalFormatterTest.php @@ -0,0 +1,33 @@ +assertEquals(2, $this->container['userModel']->create(array('username' => 'creator', 'name' => 'Task Creator', 'email' => 'creator@example.org'))); + $this->assertEquals(3, $this->container['userModel']->create(array('username' => 'assignee', 'name' => 'Task Assignee', 'email' => 'assignee@example.org'))); + $this->assertEquals(1, $this->container['projectModel']->create(array('name' => 'P1'))); + $this->assertEquals(1, $this->container['taskCreationModel']->create(array( + 'project_id' => 1, + 'title' => 'Task', + 'creator_id' => 2, + 'owner_id' => 3, + 'date_due' => strtotime('+1 day'), + ))); + + $calendar = TaskICalFormatter::getInstance($this->container) + ->setCalendar(new Calendar('Kanboard')) + ->addTasksWithDueDateOnly($this->container['taskFinderModel']->getICalQuery()) + ->format(); + + $this->assertStringContainsString('ATTENDEE;CN=Task Assignee:MAILTO:assignee@kanboard.local', $calendar); + $this->assertStringContainsString('ORGANIZER;CN=Task Creator:MAILTO:creator@kanboard.local', $calendar); + $this->assertStringNotContainsString('@example.org', $calendar); + } +}