php - 具有多个登录的 Zend 应用程序

标签 php zend-framework

我想在单个 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/

相关文章:

php - 在 Zend Form 方面需要帮助

PHP 脚本允许数据库中存在空字段

php - SQL 关闭运算符

php - 在php中向手机发送短信

php - 在 db.php 中形成 post 数组到 class.php 和 PDO 插入函数

php - Zend Framework PDF 生成 unicode 问题

php - 任何 php artisan 命令卡住终端

php - zend db 像通配符一样选择

php - 42S22 SQL 错误 : Column not found, 为什么?

php - 如何在 Zend Framework 中重用代码