mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-07-14 18:02:01 -04:00
59 lines
1.4 KiB
PHP
59 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Modules\Chat\Repositories;
|
|
|
|
use App\Mail\MarkdownMail;
|
|
use Modules\Chat\Entities\User;
|
|
use Crypt;
|
|
use Exception;
|
|
use Illuminate\Mail\Message;
|
|
use Mail;
|
|
use URL;
|
|
|
|
/**
|
|
* Class AccountRepository.
|
|
*/
|
|
class AccountRepository
|
|
{
|
|
/**
|
|
* @param $userId
|
|
*
|
|
* @return string
|
|
*/
|
|
public function generateUserActivationToken($userId)
|
|
{
|
|
$activation_code = uniqid();
|
|
|
|
/** @var User $user */
|
|
$user = User::find($userId);
|
|
$user->activation_code = $activation_code;
|
|
$user->save();
|
|
|
|
$key = $user->id.'|'.$activation_code;
|
|
$code = Crypt::encrypt($key);
|
|
|
|
return $code;
|
|
}
|
|
|
|
/**
|
|
* @param string $username
|
|
* @param string $email
|
|
* @param string $activateCode
|
|
* @param string $url
|
|
*
|
|
* @throws Exception
|
|
*/
|
|
public function sendConfirmEmail($username, $email, $activateCode, $url = '')
|
|
{
|
|
$data['link'] = ($url != '') ? $url.'/activate?token='.$activateCode : URL::to('/activate?token='.$activateCode);
|
|
$data['username'] = $username;
|
|
|
|
try {
|
|
Mail::to($email)
|
|
->send(new MarkdownMail('auth.emails.account_verification', 'Activate your account', $data));
|
|
} catch (Exception $e) {
|
|
throw new Exception('Account created, but unable to send email');
|
|
}
|
|
}
|
|
}
|