mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-10 19:51:07 +03:30
122 lines
3.8 KiB
PHP
122 lines
3.8 KiB
PHP
<?php
|
|
namespace App\Appended\Traites\Auth;
|
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Support\Facades\Mail;
|
|
use Illuminate\Http\Request;
|
|
use App\Mail\RegistrationMailer;
|
|
use App\Jobs\SendVerificationSMS;
|
|
|
|
|
|
trait Verification
|
|
{
|
|
|
|
private function setVerified($user_id, $verification)
|
|
{
|
|
$verify_number = $verification === 'email' ? 1 : 2;
|
|
$user = is_numeric($user_id) ? \App\User::select('id', 'verified')->findOrFail($user_id) : $user_id;
|
|
$user->verified = $user->verified | $verify_number;
|
|
$user->save();
|
|
return $user;
|
|
}
|
|
|
|
/**
|
|
*--------------------------------------------------------------------------
|
|
* farid saravi
|
|
* This function checks confirmation email and set user in the database as verified. lsb
|
|
*--------------------------------------------------------------------------
|
|
*/
|
|
|
|
public function confirm($token)
|
|
{
|
|
$user_id = Cache::pull($token);
|
|
if ($user_id) {
|
|
$user = $this->setVerified($user_id, 'email');
|
|
if (! \Auth::check()) {
|
|
$this->guard()->login($user);
|
|
}
|
|
}
|
|
return redirect('/');
|
|
}
|
|
|
|
/**
|
|
*--------------------------------------------------------------------------
|
|
* farid saravi
|
|
* This function checks confirmation sms and set user in the database as verified sms. msb
|
|
*--------------------------------------------------------------------------
|
|
*/
|
|
|
|
public function confirm_phone(Request $request)
|
|
{
|
|
$user_id = Cache::pull('phone_number_' . $request->number);
|
|
if ($user_id)
|
|
{
|
|
$user = $this->setVerified($user_id, 'phone_number');
|
|
if (! \Auth::check())
|
|
{
|
|
$this->guard()->login($user);
|
|
}
|
|
return response()->json(['status' => 'success']);
|
|
}
|
|
return response()->json(['status' => 'fail'], 422);
|
|
}
|
|
|
|
/**
|
|
*--------------------------------------------------------------------------
|
|
* farid saravi
|
|
* This function sends confirmation email to a user.
|
|
* @param \App\User
|
|
* @return void
|
|
*--------------------------------------------------------------------------
|
|
*/
|
|
|
|
public function mail_confirmation($user, $Type=null)
|
|
{
|
|
$Type = ($Type == null) ? 'VerifyUser' : $Type;
|
|
$email_token = str_random(30);
|
|
Cache::put($email_token, $user->id, Carbon::now()->addDays(2));
|
|
Mail::to($user->email)->send(new RegistrationMailer($user, $email_token, $Type));
|
|
}
|
|
|
|
/**
|
|
*--------------------------------------------------------------------------
|
|
* farid saravi
|
|
* This function sends confirmation sms to a user.
|
|
* @param \App\User
|
|
* @return void
|
|
*--------------------------------------------------------------------------
|
|
*/
|
|
|
|
public function phone_confirmation($user)
|
|
{
|
|
$rand_number = rand(100000, 999999);
|
|
Cache::put('phone_number_' . $rand_number, $user->id, 60);
|
|
if( $user->cell_number != '' && $user->cell_number != null ) {
|
|
$MessageText = ' کد فعالسازی شما :'. $rand_number;
|
|
$this->sendSMS($user->cell_number, $MessageText);
|
|
}
|
|
}
|
|
|
|
protected function sendSMS($phone_number, $message)
|
|
{
|
|
$options = array(
|
|
'login' => 'hs-harmony-istore',
|
|
'password' => 'WillaSMS47CD47'
|
|
);
|
|
$client = new \SoapClient('http://sms.sms-bartar.com/webservice/?WSDL', $options);
|
|
|
|
try {
|
|
$messageId = $client->send($phone_number, $message);
|
|
|
|
} catch (SoapFault $sf) {
|
|
|
|
print $sf->faultcode . "\n";
|
|
print $sf->faultstring . "\n";
|
|
|
|
return ['code' => $sf->faultcode, 'message' => $sf->faultstring];
|
|
}
|
|
|
|
}
|
|
}
|