Laratrust - Budownanie działu administracji, odc. 3
Żeby posiadać dostęp do tego co teraz stworzymy, warto zacząć od wrzucenia przykładowych danych. Użyjemy komendy:
php artisan laratrust:seeder
Teraz przechodzimy do katalogu database ->seeds
tutaj w pliku DatabaseSeeder.php w funkcji publicznej run doklejamy jedną linijkę wywołującą nasz seeder i powinno wyglądać, to tak:
Możemy teraz przypisać role przechodząc do pliku laratrust_seeder.php który znajduje się w katalogu config, albo zostawić je narazie jak są i dopiero edytować je jak już stworzymy wszystko. A teraz przejdźmy do uruchomienia seeder'a. Jeżeli były dokonane jakiekolwiek zmiany tam, to trzeba uruchomić najpierw komendę:
composer dump-autoload
A teraz komenda już db:seed którą wywołujemy poprzez:
php artisan db:seed
Jeżeli wszystko zakończyło się prawidłowo, to email użytkownika jest loginem do aplikacji, a hasło jest wyrazem 'password' - oczywiście bez nawiasów. Można to było pominąć, ale później dołożymy ->middleware i tam podamy kto może mieć dostęp od tej pory do naszej aplikacji. Jeżeli byśmy tego nie wykonali od razu, to ciężko by było potem się tam dostać.
Żeby stworzyć nowy dział do którego mogą mieć dostęp tylko osoby administrujące naszą aplikację, potrzebujemy stworzyć cały CRUD oraz Routes. Zacznijmy od Routes.
Tym razem nie tworzymy tylko Routes, ale i grupę pod którą podepniemy całą fukcjonalność. Dodatkowo dołożyłem już nie tylko panel administracyjny który jest dostępny na naszej stronie po dopisaniu /manage, ale też i /users do zarządzania użytkownikami, /roles no i permissions. Roles dają dostęp do ról użytkowników jak Admin np., a dalej ta rola posiada przypisane Pozwolenia.
Sam kod w web.php wygląda tak:
Zabezpieczyliśmy przed dostępem w naszym web.php się przed niepowołanym dostępem już:
Teraz czas stworzyć kontroler:
php artisan make:controller ManageController
Możemy teraz wejść do kontrolera i w nim stworzyć funkcję żeby wyświetlić nasz dashboard. Tutaj cały kontroler:
Kolejny krok, to stworzenie View. Przechodzimy do resources>views. W nim tworzymy katalog 'manage', on da nam miejsce na wszystkie kategorie takie jak roles, czy permissions. W środku tego nowego folderu możemy stworzyć nasz plik 'dashboard.blade.php'. Oraz dwa kolejne katalogi potrzebujemy w naszym folderze 'manage', są to 'roles' oraz 'permissions':
Sam folder 'manage' kiedyś użyjemy jeszcze do innych opcji, ale na razie posłuży nam tylko jako grupowanie rzeczy które chcemy posiadać w jednym miejscu. Co nas interesuje, to są 3 pozostałe podkatalogi.
Także co już mamy?
1. Laratrust zainstalowana i skonfigurowana.
2. Posiadamy wszystkie Route które potrzebujemy do stworzenia panelu administracyjnego.
3. Posiadamy już strukturę plików do administracji.
Co nam zostało?
Stworzyć MVC dla users, roles, permissions.
php artisan laratrust:seeder
Teraz przechodzimy do katalogu database ->seeds
tutaj w pliku DatabaseSeeder.php w funkcji publicznej run doklejamy jedną linijkę wywołującą nasz seeder i powinno wyglądać, to tak:
public function run()
{
// $this->call(UserSeeder::class);
$this->call(LaratrustSeeder::class);
}
Możemy teraz przypisać role przechodząc do pliku laratrust_seeder.php który znajduje się w katalogu config, albo zostawić je narazie jak są i dopiero edytować je jak już stworzymy wszystko. A teraz przejdźmy do uruchomienia seeder'a. Jeżeli były dokonane jakiekolwiek zmiany tam, to trzeba uruchomić najpierw komendę:
composer dump-autoload
A teraz komenda już db:seed którą wywołujemy poprzez:
php artisan db:seed
Jeżeli wszystko zakończyło się prawidłowo, to email użytkownika jest loginem do aplikacji, a hasło jest wyrazem 'password' - oczywiście bez nawiasów. Można to było pominąć, ale później dołożymy ->middleware i tam podamy kto może mieć dostęp od tej pory do naszej aplikacji. Jeżeli byśmy tego nie wykonali od razu, to ciężko by było potem się tam dostać.
Żeby stworzyć nowy dział do którego mogą mieć dostęp tylko osoby administrujące naszą aplikację, potrzebujemy stworzyć cały CRUD oraz Routes. Zacznijmy od Routes.
Tym razem nie tworzymy tylko Routes, ale i grupę pod którą podepniemy całą fukcjonalność. Dodatkowo dołożyłem już nie tylko panel administracyjny który jest dostępny na naszej stronie po dopisaniu /manage, ale też i /users do zarządzania użytkownikami, /roles no i permissions. Roles dają dostęp do ról użytkowników jak Admin np., a dalej ta rola posiada przypisane Pozwolenia.
Sam kod w web.php wygląda tak:
Route::prefix('manage')->middleware('role:root|administrator')->group(function () {
Route::get('/', 'ManageController@index');
Route::get('/dashboard', 'ManageController@dashboard')->name('manage.dashboard');
Route::resource('/users', 'UserController');
Route::resource('/permissions', 'PermissionController', ['except' => 'destroy']);
Route::resource('/roles', 'RoleController', ['except' => 'destroy']);
});
Zabezpieczyliśmy przed dostępem w naszym web.php się przed niepowołanym dostępem już:
->middleware('role:root|admin|user|guest')
Teraz czas stworzyć kontroler:
php artisan make:controller ManageController
Możemy teraz wejść do kontrolera i w nim stworzyć funkcję żeby wyświetlić nasz dashboard. Tutaj cały kontroler:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ManageController extends Controller
{
public function index ()
{
return redirect()->route('manage.dashboard');
}
public function dashboard()
{
return view('manage.dashboard');
}
}
Kolejny krok, to stworzenie View. Przechodzimy do resources>views. W nim tworzymy katalog 'manage', on da nam miejsce na wszystkie kategorie takie jak roles, czy permissions. W środku tego nowego folderu możemy stworzyć nasz plik 'dashboard.blade.php'. Oraz dwa kolejne katalogi potrzebujemy w naszym folderze 'manage', są to 'roles' oraz 'permissions':
Sam folder 'manage' kiedyś użyjemy jeszcze do innych opcji, ale na razie posłuży nam tylko jako grupowanie rzeczy które chcemy posiadać w jednym miejscu. Co nas interesuje, to są 3 pozostałe podkatalogi.
Także co już mamy?
1. Laratrust zainstalowana i skonfigurowana.
2. Posiadamy wszystkie Route które potrzebujemy do stworzenia panelu administracyjnego.
3. Posiadamy już strukturę plików do administracji.
Co nam zostało?
Stworzyć MVC dla users, roles, permissions.
Ilo to powinno zająć?
Powiedzmy, że 20-30 minut do tej pory. Zależy czy piszemy od zera, czy używamy jak ja lubie cheatsheets. W tym przypadku warto korzystać z pomocy, bo używając kopiuj/wklej możemy przy nowym projekcie i nowej edycji Laravel wszystko gotowe zaczynając od zera w pierwszej godzinie.No chyba, że podstawowa funkcjonalność nam nie pasuje, to poświęcimy odpowiednio dużo czasu na konfiguracje pod nasze, albo klienta potrzeby.
Możemy przejść do kolejnego działu, tutaj jest link wstecz.
Powiedzmy, że 20-30 minut do tej pory. Zależy czy piszemy od zera, czy używamy jak ja lubie cheatsheets. W tym przypadku warto korzystać z pomocy, bo używając kopiuj/wklej możemy przy nowym projekcie i nowej edycji Laravel wszystko gotowe zaczynając od zera w pierwszej godzinie.No chyba, że podstawowa funkcjonalność nam nie pasuje, to poświęcimy odpowiednio dużo czasu na konfiguracje pod nasze, albo klienta potrzeby.
Możemy przejść do kolejnego działu, tutaj jest link wstecz.

Comments
Post a Comment