| <?php |
|
|
| namespace Kanboard\Model; |
|
|
| use Kanboard\Core\Base; |
| use Kanboard\Core\Security\Token; |
|
|
| |
| |
| |
| |
| |
| |
| class InviteModel extends Base |
| { |
| const TABLE = 'invites'; |
|
|
| public function createInvites(array $emails, $projectId) |
| { |
| $emails = array_unique($emails); |
| $nb = 0; |
|
|
| foreach ($emails as $email) { |
| $email = trim($email); |
|
|
| if (! empty($email) && $this->createInvite($email, $projectId)) { |
| $nb++; |
| } |
| } |
|
|
| return $nb; |
| } |
|
|
| protected function createInvite($email, $projectId) |
| { |
| $values = array( |
| 'email' => $email, |
| 'project_id' => $projectId, |
| 'token' => Token::getToken(), |
| ); |
|
|
| if ($this->db->table(self::TABLE)->insert($values)) { |
| $this->sendInvite($values); |
| return true; |
| } |
|
|
| return false; |
| } |
|
|
| protected function sendInvite(array $values) |
| { |
| $this->emailClient->send( |
| $values['email'], |
| $values['email'], |
| e('Kanboard Invitation'), |
| $this->template->render('user_invite/email', array('token' => $values['token'])) |
| ); |
| } |
|
|
| public function getByToken($token) |
| { |
| return $this->db->table(self::TABLE) |
| ->eq('token', $token) |
| ->findOne(); |
| } |
|
|
| public function remove($email) |
| { |
| return $this->db->table(self::TABLE) |
| ->eq('email', $email) |
| ->remove(); |
| } |
| } |
|
|