تحقق من الإذن ضد المجموعة وليس المستخدمين الذين يستخدمون Auth-> Authorize = "الإجراءات"

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

سؤال

هل يمكن لأي شخص أن يشرح لي عمل Auth->authorize = "actions"
في مشروعي ، أخطط لـ TP أعط هذا.
مثل هذه علمني أن التصريح سوف يدعو إلى $this->Aro->check($user,"controllers/:controller/:action")

هذا سوف تحقق ضد اليمين المستخدم ؟؟
هذا يعني أن المستخدم يجب أن يكون هناك في جدول AROS.
لكنني لست بحاجة إلى التحقق من المستخدم ولكن أحتاج إلى التحقق من مجموعة
كيف يمكنني تحقيق هذا.

الآن عندما لا يكون المستخدمون في جدول ARO ، فإنه يظهر

بحيث تكون هناك حاجة إلى مجموعات ARO فقط وإضافة المستخدمين إلى AROS

شكرا مقدما

هل كانت مفيدة؟

المحلول

حصلت على الحل
باستخدام هذا المرجعي
لقد قمت بتوسيع المكون إلى Customauth وتجاوزت isAutorized() الطريقة في AuthComponent على النحو التالي

في وحدات التحكم/المكونات/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;
    }
}
?>

في app_controller.php

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

هذا حل مشكلتي :)

نصائح أخرى

تفقد هذا الفصل. للتحقق من إذن المجموعة ، قم بذلك (قيم "النموذج" و "Foreign_key" من جدول AROS):

$this->Acl->check(
     array('model' => 'Group', 'foreign_key' => 2),
    'controller/action'
);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top