2015-03-16 22:45:25 +01:00
|
|
|
<?php namespace App\Http\Controllers;
|
|
|
|
|
2016-03-16 00:08:00 +01:00
|
|
|
use App\Http\Middleware\PermissionsRequired;
|
2016-03-02 14:36:42 +01:00
|
|
|
use Illuminate\Foundation\Bus\DispatchesJobs;
|
2016-04-26 03:53:39 +02:00
|
|
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
2016-04-28 14:16:33 +02:00
|
|
|
use Input;
|
2016-03-16 00:08:00 +01:00
|
|
|
use Auth;
|
2016-04-27 02:06:19 +02:00
|
|
|
use Utils;
|
2015-10-28 20:22:07 +01:00
|
|
|
|
2015-03-16 22:45:25 +01:00
|
|
|
class BaseController extends Controller
|
|
|
|
{
|
2016-04-26 03:53:39 +02:00
|
|
|
use DispatchesJobs, AuthorizesRequests;
|
2016-03-16 00:08:00 +01:00
|
|
|
|
2016-04-28 14:16:33 +02:00
|
|
|
protected $entityType;
|
2015-10-28 20:22:07 +01:00
|
|
|
|
2015-03-16 22:45:25 +01:00
|
|
|
/**
|
|
|
|
* Setup the layout used by the controller.
|
|
|
|
*
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
protected function setupLayout()
|
|
|
|
{
|
|
|
|
if (! is_null($this->layout)) {
|
|
|
|
$this->layout = View::make($this->layout);
|
|
|
|
}
|
|
|
|
}
|
2016-03-16 00:08:00 +01:00
|
|
|
|
2016-04-26 03:53:39 +02:00
|
|
|
protected function authorizeCreate() {
|
2016-04-28 14:16:33 +02:00
|
|
|
$this->authorize('create', $this->entityType);
|
2016-04-26 03:53:39 +02:00
|
|
|
}
|
|
|
|
|
2016-04-28 14:16:33 +02:00
|
|
|
/*
|
|
|
|
protected function authorizeUpdate($entity) {
|
|
|
|
$this->authorize('edit', $entity);
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
|
2016-04-23 17:52:36 +02:00
|
|
|
protected function authorizeUpdate($input){
|
2016-03-16 00:08:00 +01:00
|
|
|
$creating = empty($input['public_id']) || $input['public_id'] == '-1';
|
|
|
|
|
|
|
|
if($creating){
|
2016-04-28 14:16:33 +02:00
|
|
|
$this->authorize('create', $this->entityType);
|
2016-03-16 00:08:00 +01:00
|
|
|
}
|
|
|
|
else{
|
2016-04-28 14:16:33 +02:00
|
|
|
$className = Utils::getEntityName($this->entityType);
|
2016-04-26 03:53:39 +02:00
|
|
|
|
|
|
|
$object = call_user_func(array("App\\Models\\{$className}", 'scope'), $input['public_id'])->firstOrFail();
|
2016-04-23 17:52:36 +02:00
|
|
|
$this->authorize('edit', $object);
|
2016-03-16 00:08:00 +01:00
|
|
|
}
|
2015-03-16 22:45:25 +01:00
|
|
|
}
|
|
|
|
}
|