花了1-2天思考并写代码,大概的实现了这点。
具体来说,就是把CWebuser/CAuthmanager/srbac都作为admin模块的子元素,并把相应设置储存在admin模块的变量中。
写一个切换app验证环境(利用Yii:app()::setComponents和Yii::app()->setModules来重设CWebuser/CAuthmanager的函数)
然后写一个用来继承的controller,重载run函数,调用切换函数。
这样所有继承该controller的控制器,都会使用特定的CWebuser/CAuthmanager来进行登录/退出/rbac验证。
对于很多业务逻辑而言,访客和管理员是完全不同的群体(比如电商,至少magento就是如此),应该有一定的适用性。
就是不知道这个做法算不算脏,有没有隐患?