/admin
ekranı normalde CoreDB içinde yönetildiği için bu ekranının erişim kısıtı Admin rolü olan kullanıcılar için sınırlandırılmıştır. Bu durumu değiştirmek için App/
dizini altında varsayılan /admin
sayfası davranışını değiştirmeliyiz.App/
dizini altında AdminController
sınıfını bir önceki sınıftan kalıtarak yeniden tanımlıyoruz ve checkAccess()
metodunu değiştiriyoruz.<?php
namespace App\Controller;
use CoreDB;
use Src\Controller\AdminController as ControllerAdminController;
class AdminController extends ControllerAdminController{
public function checkAccess(): bool
{
$user = CoreDB::currentUser();
return $user->isAdmin() || $user->isUserInRole("Editor");
}
}
Eğer kullanıcılar ekranından Editor rolüne sahip bir kullanıcı oluşturursanız ve o kullanıcı olarak oturum açarsanız /admin sayfasına erişebildiğinizi ancak diğer sayfalara erişemediğini görecekseniz.
Gözetim paneli linkinin Editor içinde görünmesi için Yan panel -> dashboard -> Düzenle ile roller kısmına Editor rolünü de ekleyelim.