Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

Ayenko4all/school-management-system-backend

12 stars
2 code files
View Ayenko4all/school-management-system-backend on GitHub

app/helpers.php

Open in GitHub
if (! function_exists('generateToken')) {
function generateToken()
{
do {
$token = mt_rand(100000, 999999);
} while (Token::where('token', $token)->exists());
 
return (string) $token;
}
}
//
if (! function_exists('generateTempPassword')) {
function generateTempPassword()
{
return bin2hex(random_bytes(3));
 
}
}
//

app/Http/Controllers/Auth/RegistrationController.php

Open in GitHub
use App\Enums\StatusEnum;
use App\Enums\VerificationEnum;
use App\Http\Controllers\Controller;
use App\Http\Controllers\RespondsWithHttpStatusController;
use App\Http\Requests\RegistrationFormRequest;
use App\Models\Token;
use App\Models\User;
use App\Notifications\SendEmailTokenNotification;
use Illuminate\Support\Facades\Hash;
 
class RegistrationController extends RespondsWithHttpStatusController
{
public function __invoke(RegistrationFormRequest $request)
{
Token::where('email', $request->email)->where('type', VerificationEnum::Email)->delete();
 
$password = generateTempPassword();
 
$user = User::create([
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'gender' => $request->gender,
'telephone' => $request->telephone,
'password' => Hash::make($password),
'status' => StatusEnum::ACTIVE
])
->assignRole($request->input('roles'));
 
$tokenData = Token::create([
'token' => generateToken(),
'email' => $request->email,
'type' => VerificationEnum::Email
]);
 
$user->notify(new SendEmailTokenNotification($tokenData->token, $password));
 
return $this->responseOk([
'message' => 'Registration successful, An email has been sent to the user',
]);
}
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.