controllare l'autorizzazione contro il gruppo non utenti usando Auth-> Autorizza = “azioni”
-
26-09-2019 - |
Domanda
Può uno mi spiegare il funzionamento di Auth->authorize = "actions"
Nel mio progetto sto progettando tp dare questo.
Come questo mi ha insegnato l'autorizzare chiamerà il $this->Aro->check($user,"controllers/:controller/:action")
Questa verificherà la contro l'utente giusto ??
che significa che l'utente dovrebbe essere lì nella tabella di AROS.
Ma non ho bisogno di questo per controllare contro utente, ma ho bisogno di controllare contro un gruppo
Come posso raggiungere questo obiettivo.
Ora, quando gli utenti non sono nella tabella Aro esso mostrando il
In modo che del Aro sarà solo i gruppi e l'aggiunta di utenti al Aros è necessario
thankz in anticipo
Soluzione
Ha ottenuto la soluzione
utilizzando questo riferimento
Ho esteso l'AuthComponent di CustomAuth e override il metodo isAutorized()
nella AuthComponent come segue
in controllori / componenti / 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';
}
Questo risolto il mio problema:)
Altri suggerimenti
Date un'occhiata a questo capitolo . Per controllare un permesso gruppo fare questo ( 'modello' e 'foreign_key' valori sono da tavolo AROS):
$this->Acl->check(
array('model' => 'Group', 'foreign_key' => 2),
'controller/action'
);