0

我只是在 Cakephp 工作了几天,我印象非常深刻。但现在我正试图与 Acl 更接近,但这有点令人困惑。

我的情况是,我想创建一个有前端和后端的网站。但我不确定我是否真的需要 Acl,因为所有用户都应该可以使用所有页面,当然后端除外。Cookbook 中的教程并不是很有帮助,因为它都是关于创建用户、组和角色以及创建正确的登录视图、添加和编辑用户等。

但我只需要有关 Acl 处理什么的信息?它是否限制控制器或模型的使用?

还是我需要 Acl 以外的其他东西?如果检查为假,检查会话变量并直接重定向到控制器可能更容易?

希望你能带我走正确的路,

提前感谢来自德国的问候,

萨沙

4

2 回答 2

0

我建议你阅读本章并使用 Auth 组件,而不是像你被取笑那样简单地访问会话。

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html

对于您的管理后端,请使用前缀路由。

http://book.cakephp.org/2.0/en/development/routing.html#prefix-routing

与 auth 一起,这很容易在 isAuthorized() 回调中检查和实现。

于 2013-02-27T18:02:45.083 回答
0

如果您不需要各种“级别”的权限;即允许任何登录用户访问后端,最好跳过ACL(暂时)。如果在稍后阶段需要 ACL,您可以随时添加它。

您可以从“简单”身份验证开始。食谱中的这一章描述了如何做到这一点; http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

一般来说,不要开发你现在不需要的功能。例如,因为您将来可能需要它而实施 ACL只会使您的开发过于复杂,而且很有可能,当那个时刻到来时,它们不符合要求。

与@burzum 不同,我不是前缀路由的忠实拥护者(仅适用于非常简单的项目),因为您最终会在同一个控制器中混合前端和后端操作和逻辑。

我建议为后端创建单独的控制器,可能将它们开发为插件。无论哪种方式,您都可以考虑为后端创建“基本”控制器和模型,并让您的后端控制器/模型扩展它们。这样,您将能够在 1 个位置定义用于后端的组件/行为。此外,通过仅在后端控制器中加载“Auth”组件,您不必在前端的每个控制器中“允许”操作

例如;

class BackendCoreController extends AppController {
    // only load the Auth component in backend controllers
    // regular/frontend controllers don't require authentication
    $components = array('Auth');

}


class PageAdminController extends BackendCoreController {

}

有关将后端开发为插件的注意事项,请在此处查看我的答案:

在 CakePHP 中实现管理面板的最佳方式

于 2013-02-27T22:23:29.970 回答