2016-06-26 10 views
0

angemeldet ist, wenn der Benutzer nicht angemeldet ist und versucht Homepage zu öffnen, nachdem zur Login-Seite umgeleitet wird, ist authError displayed.Is es eine elegante Möglichkeit, dies zu verhindern, ohne Änderung Auth-Komponente? Dies ist, wie ich Auth Komponente geladen werden (ich bin mit TinyAuth als Genehmigung Adapter):CakePHP 3.2: Prevent authError zeigt, wenn der Benutzer nicht einmal in

$this->loadComponent('Auth', [ 
       'loginAction' => [ 
        'controller' => 'Users', 
        'action' => 'login' 
       ], 
       'loginRedirect' => [ 
        'controller' => 'Home', 
        'action' => 'index' 
       ], 
       'authError' => 'You dont have permissions for that action', 
       'authenticate' => [ 
        'Form' => [ 
         'fields' => [ 
          'username' => 'email', 
          'password' => 'password' 
         ], 
         'scope' => ['Users.active' => true], 
         'contain' => ['Roles'] 
        ] 
       ], 
       'authorize' => [ 
        'TinyAuth.Tiny' => [ 
         'roleColumn' => 'role_id', 
         'rolesTable' => 'Roles', 
         'multiRole' => true, 
         'pivotTable' => 'roles_users', 
         'superAdminRole' => null, 
         'authorizeByPrefix' => false, 
         'prefixes' => [], 
         'allowUser' => false, 
         'adminPrefix' => null, 
         'autoClearCache' => true 
        ] 
       ] 
      ] 
     ); 

Antwort

3

Nach CakePHP's documentation können Sie die Fehlermeldung verhindern, dass durch authError zu false Einstellung gezeigt wird.

Manchmal möchten Sie den Autorisierungsfehler erst anzeigen, nachdem der Benutzer bereits angemeldet ist. Sie können den Wert dieser Meldung zu unterdrücken, indem false boolean.

Dies sollte die Fehlermeldung deaktivieren:

if (!$this->Auth->user()) { 
    $this->Auth->config('authError', false); 
}