mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/izyim-api.git
synced 2026-08-19 04:24:01 +00:00
added role based user management
added send reset link method updated jwt expire to one week added seeder
This commit is contained in:
@@ -4,9 +4,11 @@ use Illuminate\Http\Request;
|
||||
use App\User;
|
||||
use App\UserVerification;
|
||||
use JWTAuth;
|
||||
use Auth;
|
||||
use Aloha\Twilio\Twilio;
|
||||
use Tymon\JWTAuth\Exceptions\JWTException;
|
||||
use Validator, DB, Hash, Mail, Illuminate\Support\Facades\Password;
|
||||
use Illuminate\Auth\Passwords\TokenRepositoryInterface;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
@@ -95,33 +97,28 @@ class AuthController extends Controller
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function register(Request $request)
|
||||
public function updateUser(Request $request)
|
||||
{
|
||||
$credentials = $request->only('role', 'name', 'password', 'confirm_password');
|
||||
$credentials = $request->only('role', 'name', 'password', 'password_confirmation');
|
||||
|
||||
$rules = [
|
||||
'name' => 'required|max:255',
|
||||
'phone' => 'required|digits:10|unique:users',
|
||||
'role' => 'required',
|
||||
'password' => 'required|confirmed|min:6'
|
||||
];
|
||||
|
||||
$validator = Validator::make($credentials, $rules);
|
||||
if($validator->fails()) {
|
||||
return response()->json(['success'=> false, 'error'=> $validator->messages()]);
|
||||
}
|
||||
|
||||
$name = $request->name;
|
||||
$phone = "+6" . $request->phone;
|
||||
$password = $request->password;
|
||||
|
||||
$user = User::create(['name' => $name, 'phone' => $phone, 'password' => Hash::make($password)]);
|
||||
$verification_code = rand (0000,9999); //Generate verification code
|
||||
DB::table('user_verifications')->insert(['user_id'=>$user->id,'token'=>$verification_code]);
|
||||
|
||||
// send SMS
|
||||
$message = "IZYIM verification code : 12332";
|
||||
$twilio = new Twilio(env('TWILIO_ACC'), env('TWILIO_TOKEN'), env('TWILIO_NUMBER'));
|
||||
$twilio->message($phone, $message);
|
||||
$user = Auth::user();
|
||||
$user->update(['name' => $name, 'password' => Hash::make($password)]);
|
||||
|
||||
return response()->json(['success'=> true, 'message'=> 'A verification code has been send to your mobile number.']);
|
||||
return response()->json(['success'=> true, 'message'=> 'Profile updated.']);
|
||||
}
|
||||
|
||||
|
||||
@@ -186,22 +183,25 @@ class AuthController extends Controller
|
||||
*/
|
||||
public function recover(Request $request)
|
||||
{
|
||||
$user = User::where('email', $request->email)->first();
|
||||
if (!$user) {
|
||||
$error_message = "Your email address was not found.";
|
||||
return response()->json(['success' => false, 'error' => ['email'=> $error_message]], 401);
|
||||
}
|
||||
try {
|
||||
Password::sendResetLink($request->only('email'), function (Message $message) {
|
||||
$message->subject('Your Password Reset Link');
|
||||
});
|
||||
} catch (\Exception $e) {
|
||||
//Return with error
|
||||
$error_message = $e->getMessage();
|
||||
return response()->json(['success' => false, 'error' => $error_message], 401);
|
||||
$user = User::where('phone', $request->phone)->first();
|
||||
|
||||
if ($user){
|
||||
$token = str_random(64);
|
||||
DB::table(config('auth.passwords.users.table'))->insert([
|
||||
'phone' => $user->phone,
|
||||
'token' => $token
|
||||
]);
|
||||
}
|
||||
|
||||
/*
|
||||
todo
|
||||
|
||||
send SMS
|
||||
*/
|
||||
|
||||
return response()->json([
|
||||
'success' => true, 'data'=> ['message'=> 'A reset email has been sent! Please check your email.']
|
||||
'success' => true, 'data'=> ['message'=> 'A reset link has been send to your mobile phone.']
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Laratrust\Models\LaratrustPermission;
|
||||
|
||||
class Permission extends LaratrustPermission
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Laratrust\Models\LaratrustRole;
|
||||
|
||||
class Role extends LaratrustRole
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Laratrust\Models\LaratrustTeam;
|
||||
|
||||
class Team extends LaratrustTeam
|
||||
{
|
||||
}
|
||||
@@ -5,9 +5,11 @@ namespace App;
|
||||
use Tymon\JWTAuth\Contracts\JWTSubject;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Laratrust\Traits\LaratrustUserTrait;
|
||||
|
||||
class User extends Authenticatable implements JWTSubject
|
||||
{
|
||||
use LaratrustUserTrait;
|
||||
use Notifiable;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user