Bonjour,
Je cherche à encore optimiser mon code mais je n'arrive pas plus a l'option du style les messages je voudrais faire une fonction qui permet de get si le rank existe ou pas mais sa merde.....
<?php
namespace App\Http\Controllers;
use App\Rank;
use Illuminate\Http\Request;
use App\Http\Requests;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\URL;
class RanksController extends Controller
{
/**
* Includes all permissions
*/
private $perms = [
'Permissions Globales' => [
[
'perm' => 'app_manage_users',
'desc' => 'Peut gérer les utilisateurs',
],[
'perm' => 'app_manage_ranks',
'desc' => 'Peut gérer les groupes d\'utilisateurs',
],[
'perm' => 'app_admin',
'desc' => 'Peut gérer l\'administration du site',
],
],
];
/**
* Register of ranks
* @var array
*/
public static $list = array();
/**
* __construct
*/
public function __construct(){
$this->middleware('authorized.access:canAppManageRanks');
}
/**
* Set a special permission of an request to 1 = Is checked or 0 = Not checked
*
* @param $request
* @return array
*/
private function getPermission($request){
$perms = $this->perms;
foreach ($perms as $perm => $perms) {
foreach ($perms as $perm_content) {
if ($request[$perm_content['perm']] == 'on') {
$request[$perm_content['perm']] = 1;
} else {
$request[$perm_content['perm']] = 0;
}
}
}
}
/**
* List of ranks
* @return array
*/
public static function ranksList(){
return Rank::lists('rank_name', 'id')->toArray();
}
/**
* Get a special rank
*
* Result stored in $list
* @param $id
* @return array of the rank
*/
public static function isRank($id){
return self::$list[$id] = Rank::where('id', $id)->get();
}
/**
* index of ranks
*
* @return view:admin.ranks.index
*/
public static function index(){
$ranks = Rank::get();
return view('admin.ranks.index', compact('ranks'));
}
/**
* Destroy a special rank
*
* @param $id
* @return Rank
*/
public function destroy($id){
$rank = RanksController::isRank($id);
if (Controller::array_empty($rank)) {
return redirect(URL::previous())->with('error', "Ce groupe n'existe pas");
} else {
if ($rank && $rank[0]['id'] == 1) {
return redirect(URL::previous())->with('error', "Vous ne pouvez pas éditer ce groupe d'utilisateur.");
} else {
Rank::where('id', $id)->delete();
return redirect(URL::previous())->with('success', "Le groupe a bien été supprimé.");;
}
}
}
/**
* Edit a special rank
*
* @param $id
* @return Rank
*/
public function edit($id){
$perms = $this->perms;
$rank = RanksController::isRank($id);
if (Controller::array_empty($rank)) {
return redirect(URL::previous())->with('error', "Ce groupe n'existe pas");
} else {
if ($rank && $rank[0]['id'] == 1) {
return redirect(URL::previous())->with('error', "Vous ne pouvez pas éditer ce groupe d'utilisateur.");
} else {
return view('admin.ranks.edit', compact('rank', 'perms'));
}
}
}
/**
* Update a special rank
*
* @param \Illuminate\Http\Request $request
* @param $id
* @return Rank
*/
public function update(Request $request, $id){
$this->validate($request, ['rank_name' => 'required|max:255']);
$rank = RanksController::isRank($id);
if (Controller::array_empty($rank)) {
return redirect(URL::previous())->with('error', "Ce groupe n'existe pas");
} else {
if ($rank && $rank[0]['id'] == 1) {
return redirect(URL::previous())->with('error', "Vous ne pouvez pas éditer ce groupe d'utilisateur.");
} else {
RanksController::getPermission($request);
Rank::where('id', $id)->update($request->except(['_token', 'public', '_method']));
return redirect(URL::previous())->with('success', "Le groupe a bien été édité.");
}
}
}
/**
* Create a special rank
*
* @return Rank
*/
public function create(){
$perms = $this->perms;
$rank = new Rank();
return view('admin.ranks.create', compact('rank', 'perms'));
}
/**
* Store a special rank
*
* @param \Illuminate\Http\Request $request
* @return Rank
*/
public function store(Request $request){
$this->validate($request, ['rank_name' => 'required|max:255']);
RanksController::getPermission($request);
$rank = Rank::create($request->except('_token'));
return redirect(route('admin.ranks.edit', $rank))->with('success', "Le groupe a bien été créé.");
}
/*
* APP
*/
public static function canAppManageUsers($id){
if (!isset(self::$list[$id])) { self::isRank($id); }
return self::$list[$id][0]->app_manage_users;
}
public static function canAppManageRanks($id){
if (!isset(self::$list[$id])) { self::isRank($id); }
return self::$list[$id][0]->app_manage_ranks;
}
public static function canAppAdmin($id){
if (!isset(self::$list[$id])) { self::isRank($id); }
return self::$list[$id][0]->app_admin;
}
}
je voudrais optimiser mon code