überprüfen Erlaubnis gegen Gruppe Benutzer nicht mit Auth-> authorise = „Aktionen“
-
26-09-2019 - |
Frage
Kann jemand erklären mir das Wirken Auth->authorize = "actions"
In meinem Projekt habe vor, ich dieses tp zu geben.
Wie diese hat mich gelehrt, die autorisieren die $this->Aro->check($user,"controllers/:controller/:action")
Prüft die gegen den Benutzer oder ??
dass Mittel sollte der Benutzer in aros Tabelle da sein.
Aber ich brauche das nicht gegen Benutzer zu überprüfen, aber ich muss gegen eine Gruppe
überprüfen
Wie kann ich diese achive.
Jetzt, wenn die Benutzer nicht in Aro Tabelle den
zeigtDamit der Aro wird der sein, nur die Gruppen und Hinzufügen von Benutzern zum Aros ist erforderlich
thankz im Voraus
Lösung
Haben Sie die Lösung
mit dieser Referenz
i erweiterte die Auth Komponente zu CustomAuth und der überschriebene isAutorized()
Methode in der Auth Komponente wie folgt
in controllers / components / custom_auth.php
<?php
App::import('Component','Auth');
class CustomAuthComponent extends AuthComponent {
public function isAuthorized($type = null, $object = null, $user = null) {
$actions = $this->__authType($type);
if( $actions['type'] != 'actions' ){
return parent::isAuthorized($type, $object, $user);
}
if (empty($user) && !$this->user()) {
return false;
} elseif (empty($user)) {
$user = $this->user();
}
$group = array('model' => 'Group','foreign_key' =>$user['Login']['group_id']);
$valid = $this->Acl->check($group, $this->action());
return $valid;
}
}
?>
in app_controller.php
function beforeFilter()
{
$this->CustomAuth->userModel = 'Login';
$this->CustomAuth->allowedActions = array('display');
$this->CustomAuth->actionPath = 'controllers/';
$this->CustomAuth->authorize = 'actions';
}
Dies löste mein Problem:)
Andere Tipps
Werfen Sie einen Blick auf diese Kapitel . Um zu prüfen, eine Gruppe der Berechtigung, diese ( ‚Modell‘ und ‚foreign_key‘ Werte sind aus aros Tabelle) tun:
$this->Acl->check(
array('model' => 'Group', 'foreign_key' => 2),
'controller/action'
);