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.....

Ce que je fais

<?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;
    }
}

Ce que je veux

je voudrais optimiser mon code

Aucune réponse