'Username', 'Email', 'Password','nama - Petugas','id - Level')
'Username', 'Email', 'Password','nama - Petugas','id - Level')
php
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'username', 'email', 'password','nama_petugas','id_level'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password','remember_token',
];
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Login</div>
<div class="panel-body">
<form class="form-horizontal" method="POST" action="{{ route('login') }}">
{{ csrf_field() }}
<div class="col-md-6">
<input id="username" type="text" class="form-control"
name="username" value="{{ old('username') }}" required autofocus>
@if ($errors->has('username'))
<span class="help-block">
<strong>{{ $errors->first('username') }}</strong>
</span>
@endif
</div>
</div>
<div class="col-md-6">
<input id="password" type="password" class="form-control" name="password"
required>
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<div class="checkbox">
<label>
<input type="checkbox" name="remember" {{ old('remember') ? 'checked'
: '' }}> Remember Me
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-8 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Login
</button>
<?php
namespace App\Http\Middleware;
use Closure;
class Admin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
<?php
namespace App\Http;
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'admin' => \App\Http\middleware\Admin::class,
];
}
- Buka file resources/layout/app.blade.php
Edit menjadi seperti :
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
@endif
</ul>
<!-- Right Side Of Navbar -->
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
@if (Auth::guest())
<li><a href="{{ route('login') }}">Login</a></li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"
role="button" aria-expanded="false">
{{ Auth::user()->username }} <span class="caret"></span>
</a>
@yield('content')
</div>
<div>
ini footer
</div>
Route::get('/', function () {
return view('welcome');
});
Route::get('tes',function(){
return view('tes');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::middleware(['auth','admin'])->group(function(){
Route::get('/user', 'userController@index')->name('user');
});
- Coba login lagi menggunakan user admin dan operator , lihat bedanya
- Ketikan perintah di command prompt
php artisan make:controller UserController --resource
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Support\Facades;
use Validator;
use Input;
use App\User;
use App\level;
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
@extends('layouts.app')
@section('content')
<div class="container">
<div class="box box-warning color-palette-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-user"></i> User</h3>
</div>
<div class="box-body">
@if (session('status'))
<div class="alert alert-success">
<a href="#" class="close" data-dismiss="alert" aria-
label="close">×</a>
{{ session('status') }}
</div>
@endif
</tbody>
</table>
</div>
</div>
@endsection
Route::middleware(['auth','admin'])->group(function(){
Route::get('user', 'userController@index')->name('user.index');
Route::get('user/create','userController@create')->name('user.create');
Route::post('user/store','userController@store')->name('user.store');
Route::get('user/edit/{id}', [
'as' => '{id}',
'uses' => 'userController@edit'])->name('user.edit');
Route::put('user/update/{id}', [
'as' => '{id}',
'uses' => 'userController@update'])->name('user.update');
Route::delete('user/hapus/{id}', [
'as' => '{id}',
'uses' => 'userController@destroy'])->name('user.hapus');
Route::get('password/{id}', [
'as' => '{id}',
'uses' => 'userController@password'])->name('password');
Route::put('password/{id}', [
'as' => '{id}',
'uses' => 'userController@passwordsave'])->name('password.save');
});
@extends('layouts.app')
@section('content')
<div class="container">
<div class="panel panel-warning ">
<div class="panel-heading with-border">
<h3 class="panel-title"><i class="fa fa-user"></i> User</h3>
</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
<a href="#" class="close" data-dismiss="alert" aria-label="close">
×</a>
{{ session('status') }}
</div>
@endif
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@endsection
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Support\Facades;
use Validator;
use Input;
use App\User;
use App\level;
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$level = level::all();
return view('user.create')->withlevel($level);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
else
{
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function validatoredit(array $data)
{
return Validator::make($data, [
'username' => 'required|string|max:255',
'email' => 'required|string|email|max:255',
'nama_petugas' => 'required|string|max:255',
'level' => 'required',
]);
}
public function update(Request $request, $id)
{
$rules = array(
'username' => 'required',
'email' => 'required',
'nama_petugas' => 'required',
'level' => 'required',
);
if ($validatoredit->fails()) {
$this->throwValidationException(
$request, $validatoredit
);
} else {
$user = user::find($id);
if($user->username != $request->input('email')){
$user->email = $request->input('email');
}
$user->nama_petugas = $request->input('nama_petugas');
$user->id_level = $request->input('level');
try{
$user->save();
}
catch(\Exception $e){
return back()->withErrors('Data pengguna gagal diperbarui');
}
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$user= User::find($id);
try{
$user->delete();
}
catch(\Exception $e){
return back()->withErrors('Data pengguna gagal dihapus');
}
// validate form
$validator = Validator::make(request()->all(), [
]);
// if validation fails
if ($validator->fails()) {
return redirect()
->back()
->withErrors($validator->errors());
}
// update password
$user = User::find($id);
$user->password = bcrypt(request('password'));
try{
$user->save();
}
catch(\Exception $e){
return back()->withErrors('Password pengguna gagal direset');
}
return redirect('user')->with('status', 'Password pengguna berhasil direset!');
}
@extends('layouts.app')
@section('content')
<div class="container">
<div class="panel panel-success ">
<div class="panel-heading with-border ">
<h3 class="panel-title"><i class="fa fa-user-plus"></i>Tambah Pengguna
Aplikasi</h3>
</div>
<div class="panel-body">
<br/><br/>
<form class="form-horizontal" method="POST" action="{{ url('user/store') }}">
{{ csrf_field() }}
<div class="form-group{{ $errors->has('username') ? ' has-error' : '' }}">
<label for="username" class="col-md-4 control-label">Username</label>
<div class="col-md-6">
<div class="input-group">
<input id="username" type="text" class="form-control" name="username"
value="{{ old('username') }}" placeholder="Masukkan username" required>
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
</div>
@if ($errors->has('username'))
<span class="help-block">
<strong>{{ $errors->first('username') }}</strong>
</span>
@endif
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<input id="email" type="email" class="form-control" name="email"
value="{{ old('email') }}" placeholder="Masukkan email" required>
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
</div>
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<input id="password" type="password" class="form-control"
name="password" placeholder="Masukkan password"required>
<span class="input-group-addon"><i class="fa fa-lock"></i></span>
</div>
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<input id="nama_petugas" type="text" class="form-control"
name="nama_petugas" placeholder="Masukkan nama petugas " value="{{
old('nama_petugas')}}"required>
<span class="input-group-addon"><i class="fa fa-user"></i></span>
</div>
@if ($errors->has('nama_petugas'))
<span class="help-block">
<strong>{{ $errors->first('nama_petugas') }}</strong>
</span>
@endif
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<select id="level" name="level" class="form-control">
<option value="">--- Pilih level ---</option>
@foreach ($level as $value)
<option value="{{ $value->id }}" {{ old('level') == $value->id ? 'selected'
: ''}}>{{ $value->nama_level }}</option>
@endforeach
</select>
<span class="input-group-addon"><i class="fa fa-level"></i></span>
</div>
@if ($errors->has('level'))
<span class="help-block">
<strong>{{ $errors->first('level') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Register
</button>
</div>
<br/>
</div>
</div>
</form>
</div>
</div>
@endsection
@extends('layouts.app')
@section('content')
<div class="container">
<div class="panel panel-success ">
<div class="panel-heading with-border ">
<h3 class="panel-title"><i class="fa fa-user-plus"></i>Edit Pengguna Aplikasi</h3>
</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
<a href="#" class="close" data-dismiss="alert" aria-
label="close">×</a>
{{ session('status') }}
</div>
@endif
<div class="col-md-6">
<div class="input-group">
<input id="username" type="text" class="form-control" name="username"
value="{{ $users->username }}" placeholder="Masukkan username" required>
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
</div>
@if ($errors->has('username'))
<span class="help-block">
<strong>{{ $errors->first('username') }}</strong>
</span>
@endif
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<input id="email" type="email" class="form-control" name="email"
value="{{ $users->email }}" placeholder="Masukkan email" required>
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
</div>
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<input id="nama_petugas" type="text" class="form-control"
name="nama_petugas" placeholder="Masukkan nama petugas " value="{{ $users-
>nama_petugas }}"required>
<span class="input-group-addon"><i class="fa fa-user"></i></span>
</div>
@if ($errors->has('nama_petugas'))
<span class="help-block">
<strong>{{ $errors->first('nama_petugas') }}</strong>
</span>
@endif
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<select id="level" name="level" class="form-control">
<option value="{{$users->id_level}}">{{$users->level-
>nama_level}}</option>
@foreach ($level as $value)
<option value="{{ $value->id }}" {{ old('level') == $value->id ? 'selected'
: ''}}>{{ $value->nama_level }}</option>
@endforeach
</select>
<span class="input-group-addon"><i class="fa fa-level"></i></span>
</div>
@if ($errors->has('level'))
<span class="help-block">
<strong>{{ $errors->first('level') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Ubah Data
</button>
</div>
<br/>
</div>
</div>
</form>
</div>
</div>
@endsection
@extends('layouts.app')
@section('content')
<div class="container">
<div class="panel panel-info ">
<div class="panel-heading with-border ">
<h3 class="panel-title"><i class="fa fa-lock"></i> Reset Password {{$user-
>username}}</h3>
</button>
</div>
<div class="panel-body">
<div class="col-md-6">
<input id="password" type="password" class="form-control"
name="password" required>
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<label for="password-confirm" class="col-md-4 control-label">Confirm
Password</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control"
name="password_confirmation" required>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Reset Password
</button>
</div>
</div>
</form>
</div>
</div>
@endsection