Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,25 @@
## Program Tagihan SPP Sekolah v1.1
Aplikasi untuk memaintain Tagihan Pembayaran Sekolah Berbasis Web Admin dengan Memanfaatkan Teknologi Laravel v9.x

### How to run it!

```shell
# STEP 1
$ git clone https://github.com/aspsptyd/program-tagihan-spp.git
# STEP 2
$ cd program-tagihan-spp/
# STEP 3
$ composer update
# STEP 4
$ composer install
# STEP 5
$ cp .env.example .env
# STEP 6
$ php artisan key:generate
# STEP 7
$ php artisan serve
```

### Whats New!
Update-update terbaru yang ditambahkan ke dalam proses development app yaitu sebagai berikut

Expand All @@ -13,4 +32,4 @@ Installasi

Update Feature

Soon
- Integrasi Register & Login <a href="https://github.com/aspsptyd/program-tagihan-spp/pull/2">#2</a>
15 changes: 15 additions & 0 deletions app/Http/Controllers/Auth/LoginController.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
Expand Down Expand Up @@ -37,4 +39,17 @@ public function __construct()
{
$this->middleware('guest')->except('logout');
}

public function authenticated(Request $request, $user)
{
if ($user->akses == 'operator' || $user->akses == 'admin') {
return redirect()->route('operator.beranda');
} elseif ($user->akses == 'wali') {
return redirect()->route('wali.beranda');
} else {
Auth::logout();
flash('Anda tidak memiliki hak akses')->error();
return redirect()->route('login');
}
}
}
13 changes: 13 additions & 0 deletions app/Http/Controllers/BerandaOperatorController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class BerandaOperatorController extends Controller
{
public function index()
{
return view('operator.beranda_index');
}
}
13 changes: 13 additions & 0 deletions app/Http/Controllers/BerandaWaliController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class BerandaWaliController extends Controller
{
public function index()
{
return view('wali.beranda_index');
}
}
3 changes: 3 additions & 0 deletions app/Http/Kernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,8 @@ class Kernel extends HttpKernel
'signed' => \App\Http\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'auth.admin' => \App\Http\Middleware\Admin::class,
'auth.wali' => \App\Http\Middleware\Wali::class,
'auth.operator' => \App\Http\Middleware\Operator::class,
];
}
24 changes: 24 additions & 0 deletions app/Http/Middleware/Admin.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class Admin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if ($request->user()->akses == 'admin') {
return $next($request);
}
abort(403, 'Akses khusus admin');
}
}
24 changes: 24 additions & 0 deletions app/Http/Middleware/Operator.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class Operator
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if ($request->user()->akses == 'operator' || $request->user()->akses == 'admin' ) {
return $next($request);
}
abort(403, 'Akses khusus Operator');
}
}
24 changes: 24 additions & 0 deletions app/Http/Middleware/Wali.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class Wali
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if ($request->user()->akses == 'wali') {
return $next($request);
}
abort(403, 'Akses khusus wali murid');
}
}
3 changes: 3 additions & 0 deletions app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ class User extends Authenticatable
'name',
'email',
'password',
'akses',
'nohp',
'nohp_verified_at',
];

/**
Expand Down
12 changes: 6 additions & 6 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions resources/views/operator/beranda_index.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
@extends('layouts.app')

@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Hi, Operator!</div>

<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif

{{ __('You are logged in!') }}
</div>
</div>
</div>
</div>
</div>
@endsection
23 changes: 23 additions & 0 deletions resources/views/wali/beranda_index.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
@extends('layouts.app')

@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Hi, Wali!</div>

<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif

{{ __('You are logged in!') }}
</div>
</div>
</div>
</div>
</div>
@endsection
23 changes: 23 additions & 0 deletions routes/web.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
<?php

use App\Http\Controllers\BerandaOperatorController;
use App\Http\Controllers\BerandaWaliController;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;

/*
Expand All @@ -20,3 +23,23 @@
Auth::routes();

Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');

Route::prefix('operator')->middleware(['auth', 'auth.operator'])->group(function () {
//ini route khusus untuk operator
Route::get('beranda', [BerandaOperatorController::class, 'index'])->name('operator.beranda');
});


Route::prefix('wali')->middleware(['auth', 'auth.wali'])->group(function () {
//ini route khusus untuk wali-murid
Route::get('beranda', [BerandaWaliController::class, 'index'])->name('wali.beranda');
});


Route::prefix('admin')->middleware(['auth', 'auth.admin'])->group(function () {
//ini route khusus untuk admin
});

Route::get('logout', function () {
Auth::logout();
});
22 changes: 22 additions & 0 deletions tests/CreatesApplication.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace Tests;

use Illuminate\Contracts\Console\Kernel;

trait CreatesApplication
{
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public function createApplication()
{
$app = require __DIR__.'/../bootstrap/app.php';

$app->make(Kernel::class)->bootstrap();

return $app;
}
}
21 changes: 21 additions & 0 deletions tests/Feature/ExampleTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace Tests\Feature;

// use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function test_the_application_returns_a_successful_response()
{
$response = $this->get('/');

$response->assertStatus(200);
}
}
10 changes: 10 additions & 0 deletions tests/TestCase.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Tests;

use Illuminate\Foundation\Testing\TestCase as BaseTestCase;

abstract class TestCase extends BaseTestCase
{
use CreatesApplication;
}
18 changes: 18 additions & 0 deletions tests/Unit/ExampleTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

namespace Tests\Unit;

use PHPUnit\Framework\TestCase;

class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function test_that_true_is_true()
{
$this->assertTrue(true);
}
}