Skip to content

Commit

Permalink
bootstraping with controller and views #1
Browse files Browse the repository at this point in the history
  • Loading branch information
nishangupta committed Oct 28, 2020
1 parent c1a7978 commit d2b31a8
Show file tree
Hide file tree
Showing 10 changed files with 140 additions and 6 deletions.
57 changes: 57 additions & 0 deletions app/Http/Controllers/AccountController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use RealRashid\SweetAlert\Facades\Alert;
use Illuminate\Support\Str;
use App\Models\User;

class AccountController extends Controller
{
public function logout()
{
Auth::logout();
return redirect()->route('login');;
}

public function changePassword(Request $request)
{
if (!auth()->user()) {
Alert::toast('Not authenticated!', 'success');
return redirect()->back();
}

//check if the password is valid
$request->validate([
'current_password' => 'required|min:8',
'new_password' => 'required|min:8'
]);

$authUser = auth()->user();

$currentP = $request->current_password;
$newP = $request->new_password;
$confirmP = $request->confirm_password;

if (Hash::check($currentP, $authUser->password)) {
if (Str::of($newP)->exactly($confirmP)) {
$user = User::find($authUser->id);
$user->password = Hash::make($newP);
if ($user->save()) {
Alert::toast('Password Changed!', 'success');
return redirect()->intended('/');
} else {
Alert::toast('Something went wrong!', 'warning');
}
} else {
Alert::toast('Passwords do not match!', 'info');
}
} else {
Alert::toast('Incorrect Password!', 'info');
}
return redirect()->back();
}
}
34 changes: 34 additions & 0 deletions app/Http/Controllers/HomeController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$userRole = auth()->user()->getRoleNames()->first();
switch ($userRole) {
case 'admin':
return redirect(route('admin.dashboard'));
break;

case 'seller':
return redirect(route('seller.dashboard'));
break;

case 'shipper':
return redirect(route('shipper.dashboard'));
break;

default:
return redirect(route('user.index'));
break;
}
}
}
14 changes: 14 additions & 0 deletions app/Http/Controllers/UserController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
//user profile
public function index()
{
return view('user.index');
}
}
22 changes: 22 additions & 0 deletions app/Http/Controllers/admin/AdminController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class AdminController extends Controller
{
public function __construct()
{
$this->middleware('role:admin')->except(['loginView']);
}
public function loginView()
{
return view('auth-admin.login');
}
public function dashboard()
{
return view('admin.dashboard');
}
}
2 changes: 2 additions & 0 deletions app/Http/Kernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,7 @@ class Kernel extends HttpKernel
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
];
}
5 changes: 5 additions & 0 deletions app/Models/Category.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,9 @@
class Category extends Model
{
use HasFactory;

public function subCategory()
{
return $this->hasMany('App\Models\SubCategory');
}
}
3 changes: 2 additions & 1 deletion app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
use HasFactory, Notifiable;
use HasFactory, Notifiable, HasRoles;

/**
* The attributes that are mass assignable.
Expand Down
1 change: 1 addition & 0 deletions config/app.php
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@
/*
* Package Service Providers...
*/
App\Providers\FortifyServiceProvider::class,

/*
* Application Service Providers...
Expand Down
4 changes: 1 addition & 3 deletions database/factories/CategoryFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ class CategoryFactory extends Factory
*/
public function definition()
{
return [
//
];
return [];
}
}
4 changes: 2 additions & 2 deletions phpunit.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
<!-- <server name="DB_CONNECTION" value="sqlite"/> -->
<!-- <server name="DB_DATABASE" value=":memory:"/> -->
<server name="DB_CONNECTION" value="sqlite"/>
<server name="DB_DATABASE" value=":memory:"/>
<server name="MAIL_MAILER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
Expand Down

0 comments on commit d2b31a8

Please sign in to comment.