شاطی رودخانه ای به سوی دنیای متن باز

پروژه ها و برنامه ها و سمینار های اینجانب به صورت آزاد در این سایت قرار می گیرد

شاطی رودخانه ای به سوی دنیای متن باز

پروژه ها و برنامه ها و سمینار های اینجانب به صورت آزاد در این سایت قرار می گیرد

پروژه ها و برنامه ها و سمینار های اینجانب به صورت آزاد در این سایت قرار می گیرد. امیدوارم با این کار سرآغازی برای آزادی در مرز های دانش باشم .

طبقه بندی موضوعی
کلمات کلیدی
آخرین مطالب
۰۵
فروردين ۹۴

http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

 

 

    public $components = array(
        'Session',
        'Auth' => array(
            'loginRedirect' => array(
                'controller' => 'posts',
                'action' => 'index'
            ),
            'logoutRedirect' => array(
                'controller' => 'pages',
                'action' => 'display',
                'home'
            ),
            'authenticate' => array(
                'Form' => array(
                    'passwordHasher' => 'Blowfish'
                )
            )
        )
    );

 

استفاده از این روش مناسب است ولی روش های دیگر مانند فرار دادن در مدل و usercontoller نیز ممکن است

 

این دستور اجازه دسترسی بدون لاگین را می دهد

public function beforeFilter() {
    parent::beforeFilter();
    // Allow users to register and logout.
    $this->Auth->allow('add', 'logout');
}

 

برای لاگین چند نفر یا با دسترسی های مختلف از دستور زیر استفاده میکنیم

// app/Controller/AppController.php

public $components = array(
    'Session',
    'Auth' => array(
        'loginRedirect' => array('controller' => 'posts', 'action' => 'index'),
        'logoutRedirect' => array(
            'controller' => 'pages',
            'action' => 'display',
            'home'
        ),
        'authenticate' => array(
            'Form' => array(
                'passwordHasher' => 'Blowfish'
            )
        ),
        'authorize' => array('Controller') // Added this line
    )
);

public function isAuthorized($user) {
    // Admin can access every action
    if (isset($user['role']) && $user['role'] === 'admin') {
        return true;
    }

    // Default deny
    return false;
}

 

isAuthorized

این تابع باید متناسب با مسئله تغییر یابد

 

می توانیم در هر کنترلری یک تابع همانند این داشته باشم

// app/Controller/PostsController.php

public function isAuthorized($user) {
    // All registered users can add posts
    if ($this->action === 'add') {
        return true;
    }

    // The owner of a post can edit and delete it
    if (in_array($this->action, array('edit', 'delete'))) {
        $postId = (int) $this->request->params['pass'][0];
        if ($this->Post->isOwnedBy($postId, $user['id'])) {
            return true;
        }
    }

    return parent::isAuthorized($user);
}

 

به این نکته دفت کنید که از این تابع استفاده نمایید

function beforeFilter() {

parent::beforeFilter();

}

 

تا برای تعریف مجدد تابع isauthorized مشکلی نداشته باشید

موافقین ۰ مخالفین ۰ ۹۴/۰۱/۰۵
مبین

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی