我完成了本地论坛供个人使用,但他们只是注册会员,我想设置一个管理员,但我不知道如何开始和完成,如果有人可以帮助我请解释一下,我感谢您的任何帮助。非常感谢你。
更新
我应该只为管理员创建一个新表吗? 我如何为他和其他成员设置角色?
更新
我想知道与其他普通用户相比,管理员是否可能拥有所有页面的不同布局(控制用户的按钮,查看在线用户的IP地址,强制禁止IP或访问的浏览器等)。如果他可能,如何在所有页面上定位和设置,那太复杂了不是吗?或者我是否在考虑这个问题?
答案 0 :(得分:0)
我应该将它保存在一个用户表中,正如我假设您现在所做的那样,并在用户表中保留一条记录,因为它的“级别”表示通过另一个表中的LEFT-join检索的一些特权。
这只是一个例子,因为您的目标可以通过更多方式实现。
答案 1 :(得分:0)
通常您会拥有User表(我假设您已经拥有),并带有“Role”字段。当有人登录时,您可以检测用户是否是管理员。
如果您不需要极大的灵活性,则可以将管理员权限硬编码到代码中。当操作要求用户是管理员时,您只需检查“角色”字段中的值。
答案 2 :(得分:0)
在users表中添加另一列“Role”,定义用户是否为admin,在loggin上检查此字段并设置会话变量$_SESSION['is_admin']
,然后在相关页面上检查此字段是否已设置并包含管理员特定文件。
答案 3 :(得分:0)
你可以使用我的Tiny Auth: http://www.dereuromark.de/2011/12/18/tinyauth-the-fastest-and-easiest-authorization-for-cake2/
它不一定需要角色表(Configure可以解决这个问题),并且有一个设置可以自动允许所有非管理员前缀操作给用户,并允许所有admin_prefixed方法进入管理员。 没有任何开销。
这说你可以使用那些admin_actions为管理员拥有一个自己的后端,或者你可以检查模板中的角色,如下所示:
if ($this->Session->read('Auth.User.role_id') == Configure::read('Role.admin')) {
//echo admin stuff inline
}
如果你是管理员,这只会输出信息和链接/按钮。
或者你可以将这两者混合在一起。