vérifier l'autorisation contre groupe non utilisateurs en utilisant Auth-> autoriser = « actions »

StackOverflow https://stackoverflow.com/questions/3413747

Question

Quelqu'un peut-il me expliquer le fonctionnement de Auth->authorize = "actions"
Dans mon projet, je prévois donner tp cela.
Comme cette m'a appris l'authorize appellera le $this->Aro->check($user,"controllers/:controller/:action")

vérifiera l'encontre de l'utilisateur droit ??
cela signifie que l'utilisateur doit être là dans aros table.
Mais je ne veux pas besoin de ceci pour vérifier contre l'utilisateur, mais je dois vérifier contre un groupe
Comment puis-je y parvenez.

lorsque les utilisateurs ne sont pas dans le tableau Aro indiquant les

Alors que de l'Aro sera seulement les groupes et en ajoutant des utilisateurs au Aros est nécessaire

thankz à l'avance

Était-ce utile?

La solution

A obtenu la solution
en utilisant cette référence
i étendu le AuthComponent à CustomAuth et réécrite la méthode de isAutorized() dans le AuthComponent comme suit

dans les contrôleurs / composants / 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;
    }
}
?>

dans app_controller.php

function beforeFilter()
{
$this->CustomAuth->userModel = 'Login';
$this->CustomAuth->allowedActions = array('display');
$this->CustomAuth->actionPath = 'controllers/';
$this->CustomAuth->authorize = 'actions';
}

Ceci a résolu mon problème:)

Autres conseils

Jetez un oeil à cette chapitre . Pour vérifier une autorisation de groupe faire (valeurs « modèle » et « foreign_key » sont de la table aros):

$this->Acl->check(
     array('model' => 'Group', 'foreign_key' => 2),
    'controller/action'
);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top