Wednesday, January 26, 2022

[FIXED] Allowing a Specific Page in Cakephp

Issue

I understand how to allow certain controller actions for non-logged in users. But, I can't find any documentation on how to allow access to specific pages. The controller is pages and the action is display. But, I don't want to allow the user to see all pages, just the about page.

So, what is the correct way to allow guests access to some, but not all, pages?


Solution

I'm afraid you can't do that using the standard functions that AuthComponent gives you. You have to create your own logic for that in the pages_controller's display action.

Something like (pseudo-code style)

# in app/controllers/pages_controller.php
var $allowedPages = array('one', 'two');

function display($page) {
    if(in_array($page, $allowedPages) || $this->User->loggedin) {
        $this->render($page);
    } else {
        $this->render('not_allowed');
    }
}


Answered By - vindia

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.