|
|||
|
I managed to set up authentication through Zend_Auth and access control through Zend_Acl. This works without any problem. However, I'd like to take things one step further.
My view scripts sometimes display links to pages that are not accessible by the logged in user, because that user does not have the proper rights to view that page. Think of an "edit" link next to a blog article. If only the author of the article is allowed (via Zend_Acl) to edit the article, then it makes no sense to display the "edit" link to other users as well, as clicking on the link will only send them to a "not authorised" page. Is there a convenient way of dealing with this problem? I'm sure it's a common request so I was hoping someone could help me with it. Thanks in advance. |
|
|||
|
Create a custom plugin class that creates these links, injecting your Zend_Acl object into that class so it can decide which functionality to provide to any given request.
Personally I like to keep as much access control outside the action controllers themselves. Such a plugin would allow you to do so. |
|
|||
|
That's interesting. Could you, in plain words, describe what the logic for that plugin would look like in your eyes? I think I don't fully get what you mean.
Here was my temporary and not-so-good solution: I thought of creating a view helper that checks whether a url is permitted to the user. If it is, then I can display whatever information in an IF clause in my view script. It works but is kinda clumsy in my view script because of all the IF/ELSE clauses. Here's the code of my view helper: PHP Code:
PHP Code:
|
|
|||
|
I have posted the same question on the official zend framework mailing list and so far this came up: Nabble - Zend Framework - Restricting display of links to non-authorized pages in view scripts- how to?
It's basicallly the same kind of hack as the one provided in my message above. |
![]() |
| Thread Tools | |
| Display Modes | |
|
|