实施“管理面板模块”不使用模块(MVC相关)
假设我们的 MVC 框架很差,没有模块支持。我们的目标是实现具有某些功能的管理面板。 所有管理面板功能的 URL 将以 /admin 开头(/admin/add_user、/admin/remove_user)等。 由于我们没有模块,所以我们必须创建管理控制器(是的,这个控制器可能会很大)。
<?
class AdminController extends Controller {
public function addUser() {
...
}
public function removeUser() {
...
}
}
?>
我们如何保护这种方法不被任何人访问?我认为.htaccessing /admin 文件夹不是一个好主意。
谢谢。
Let's suppose that we have poor MVC framework without modules support. Our aim is to implement admin panel with some functionality.
Url for all admin panel features will start with /admin (/admin/add_user, /admin/remove_user) etc.
As we don't have modules, so we have to create Admin controller (yes, this controller probably will be extra large).
<?
class AdminController extends Controller {
public function addUser() {
...
}
public function removeUser() {
...
}
}
?>
How can we protect this methods of being accessed by anyone? .htaccessing /admin folder is not a good idea, I think.
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将所有函数设为
私有
并实现一个公共函数__call
,该函数检查用户是否已登录并具有适当的权限,然后抛出错误消息或重定向到正确的方法。Make all functions
private
and implement apublic function __call
which checks whether the user is logged in and has appropriate rights and then either throws an error message or redirects to the correct method.好吧,我不知道您的 MVC 模型是否有它,但如果有,您可以使用预调度机制。
或者可以在初始化时检查它。
Well I don't know if your MVC model have it but if so you an use a pre-dispatch mechanism.
Or may be check it in the initialization.