我想在单个 zend 应用程序中进行多次登录。
我有五个部分 A、B、C、D、E 和四种类型的用户(P、Q、R、S),包括匿名用户。这些部分有子部分。 A、B、C 部分需要登录才能访问它们。所有类型的用户都可以访问 D 和 E 部分,但特定类型的用户可以执行一些操作。
P只能登录sec A,Q只能登录sec B,R只能登录sec C。
能否请您建议我应该使用什么目录结构以及我应该如何实现多登录。
谢谢
最佳答案
目录结构与访问权限无关。您的整个应用程序可以是一个单独的 Controller ,并且能够实现您的角色和权限概念,但不会是好的代码。
如果你不想使用 Zend_Acl(为什么不呢?)你可以通过实现一个简单的概念来解决它,如下所示:
为您的每个“部分”创建一个应用程序模块,包括每个应用程序中的 PublicController,以后任何人都可以访问它。 那么你应该实现一个前端 Controller 插件,它看起来像下面这样
public function preDispatch()
{
$identity = Zend_Auth::getInstance()->getIdentity();
$module = $this->getRequest()->getModuleName();
$controller = $this->getRequest()->getControllerName();
if($controller == 'public') {
return;
}
switch ($identity->role) {
case 'A':
if ($module != 'P') {
$this->myNotAuthorized();
}
break;
// cases for other roles/modules
}
}
关于php - 具有多个登录的 Zend 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3083893/