add airports table and #7 integrate permissions

This commit is contained in:
Nabeel Shahzad
2017-06-11 11:36:16 -05:00
parent 35f660d1d9
commit d3cf57a1d1
25 changed files with 640 additions and 60 deletions

View File

@@ -0,0 +1,156 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Requests;
use App\Http\Requests\CreateAirportRequest;
use App\Http\Requests\UpdateAirportRequest;
use App\Repositories\AirportRepository;
use App\Http\Controllers\AppBaseController as InfyOmBaseController;
use Illuminate\Http\Request;
use Flash;
use Prettus\Repository\Criteria\RequestCriteria;
use Response;
class AirportController extends InfyOmBaseController
{
/** @var AirportRepository */
private $airportRepository;
public function __construct(AirportRepository $airportRepo)
{
$this->airportRepository = $airportRepo;
}
/**
* Display a listing of the Airport.
*
* @param Request $request
* @return Response
*/
public function index(Request $request)
{
$this->airportRepository->pushCriteria(new RequestCriteria($request));
$airports = $this->airportRepository->all();
return view('admin.airports.index')
->with('airports', $airports);
}
/**
* Show the form for creating a new Airport.
*
* @return Response
*/
public function create()
{
return view('admin.airports.create');
}
/**
* Store a newly created Airport in storage.
*
* @param CreateAirportRequest $request
*
* @return Response
*/
public function store(CreateAirportRequest $request)
{
$input = $request->all();
$airport = $this->airportRepository->create($input);
Flash::success('Airport saved successfully.');
return redirect(route('admin.airports.index'));
}
/**
* Display the specified Airport.
*
* @param int $id
*
* @return Response
*/
public function show($id)
{
$airport = $this->airportRepository->findWithoutFail($id);
if (empty($airport)) {
Flash::error('Airport not found');
return redirect(route('admin.airports.index'));
}
return view('admin.airports.show')->with('airport', $airport);
}
/**
* Show the form for editing the specified Airport.
*
* @param int $id
*
* @return Response
*/
public function edit($id)
{
$airport = $this->airportRepository->findWithoutFail($id);
if (empty($airport)) {
Flash::error('Airport not found');
return redirect(route('admin.airports.index'));
}
return view('admin.airports.edit')->with('airport', $airport);
}
/**
* Update the specified Airport in storage.
*
* @param int $id
* @param UpdateAirportRequest $request
*
* @return Response
*/
public function update($id, UpdateAirportRequest $request)
{
$airport = $this->airportRepository->findWithoutFail($id);
if (empty($airport)) {
Flash::error('Airport not found');
return redirect(route('admin.airports.index'));
}
$airport = $this->airportRepository->update($request->all(), $id);
Flash::success('Airport updated successfully.');
return redirect(route('admin.airports.index'));
}
/**
* Remove the specified Airport from storage.
*
* @param int $id
*
* @return Response
*/
public function destroy($id)
{
$airport = $this->airportRepository->findWithoutFail($id);
if (empty($airport)) {
Flash::error('Airport not found');
return redirect(route('admin.airports.index'));
}
$this->airportRepository->delete($id);
Flash::success('Airport deleted successfully.');
return redirect(route('admin.airports.index'));
}
}

View File

@@ -2,8 +2,9 @@
namespace App\Http\Controllers\Auth;
use App\User;
use Validator;
use App\Models\Role;
use App\Models\User;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\RegistersUsers;
@@ -50,7 +51,7 @@ class RegisterController extends Controller
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
'password' => 'required|min:5|confirmed',
]);
}
@@ -62,10 +63,14 @@ class RegisterController extends Controller
*/
protected function create(array $data)
{
return User::create([
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
$role = Role::where('name', 'admin')->first();
$user->attachRole($role);
return $user->refresh();
}
}

View File

@@ -2,7 +2,9 @@
namespace App\Http\Controllers\Frontend;
class BaseController extends Controller
use App\Http\Controllers\AppBaseController;
class BaseController extends AppBaseController
{
}

View File

@@ -11,6 +11,6 @@ class DashboardController extends BaseController
*/
public function index()
{
return view('frontend/dashboard');
return view('frontend.dashboard');
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
use App\Models\Airport;
class CreateAirportRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return Airport::$rules;
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
use App\Models\Airport;
class UpdateAirportRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return Airport::$rules;
}
}

52
app/Models/Airport.php Normal file
View File

@@ -0,0 +1,52 @@
<?php
namespace App\Models;
use Eloquent as Model;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class Airport
* @package App\Models
*/
class Airport extends Model
{
use SoftDeletes;
public $table = 'airports';
protected $dates = ['deleted_at'];
public $fillable = [
'icao'
];
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts = [
];
/**
* Validation rules
*
* @var array
*/
public static $rules = [
'icao' => 'required'
];
public function save(array $options = [])
{
if(in_array('icao', $options)) {
$options['icao'] = strtoupper($options['icao']);
}
return parent::save($options);
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Repositories;
use App\Models\Airport;
use InfyOm\Generator\Common\BaseRepository;
class AirportRepository extends BaseRepository
{
/**
* @var array
*/
protected $fieldSearchable = [
'icao'
];
/**
* Configure the Model
**/
public function model()
{
return Airport::class;
}
}