phalcon: 目录分组后的acl权限控制

楼主在做acl权限的时候,发现官方的acl只能针对未分组的目录,如下:

app/
___|./controller
___|./logic
___|./plugins
___|./models
..............

  

但是对分组不支持,后来想想,是支持的.分组的目录如下

app/
___|./admin/
__________|./controllers
__________|./logic
__________|./views
__________|./module.php
___|./home/
__________|./controllers
__________|./logic
__________|./views
__________|./module.php
.........................................

  

那么可以将,如下代码,直接加入到,分组目录下的 module.php代码中

$di[‘aclResource‘]=function(){
            return include_once ‘../app/configs/frontAcl.php‘;
        };
        $di[‘dispatcher‘] = function(){
            $eventManager = new \Phalcon\Events\Manager();
            $securyDeep = new \SecurityDeep();
            $eventManager->attach("dispatch", $securyDeep);
            $dispatch = new \Phalcon\Mvc\Dispatcher();
            $dispatch->setEventsManager($eventManager);
            return $dispatch;
        };

  

全代码:

use Phalcon\Loader,
    Phalcon\Mvc\Url,
    Phalcon\Mvc\Dispatcher,
    Phalcon\DiInterface,
    Phalcon\Mvc\ModuleDefinitionInterface,
    Phalcon\DI\Injectable,
    Phalcon\Mvc\Router;

class Module extends Injectable implements ModuleDefinitionInterface
{

    /**
     * Registers the module auto-loader
     */
    public function registerAutoloaders(DiInterface $dependencyInjector = null)
    {
        $loader = new Loader();
        $loader->registerNamespaces(array(
            ‘App\Home\Controllers‘ => __DIR__ .‘/controllers/‘
        ))->register();
        $loader->registerDirs(
            array(
                ‘modelsDir‘      => ‘../app/models/‘,
				‘pluginsDir‘      => ‘../app/plugins/‘,
            )
        )->register();

    }

    /**
     * Registers the module-only services
     *
     * @param DiInterface $di
     */
    public function registerServices(DiInterface $di)
    {        

        $di[‘aclResource‘]=function(){
            return include_once ‘../app/configs/frontAcl.php‘;
        };
        $di[‘dispatcher‘] = function(){
            $eventManager = new \Phalcon\Events\Manager();
            $securyDeep = new \SecurityDeep();
            $eventManager->attach("dispatch", $securyDeep);
            $dispatch = new \Phalcon\Mvc\Dispatcher();
            $dispatch->setEventsManager($eventManager);
            return $dispatch;
        };

        /**
         * @return mixed
         */
        $di[‘baseUrl‘] = function () {
            $url = new Url();
            $url->setBaseUri(‘/‘);
            return $url;
        };

        /**
         * 设置view
         */
        $di->set(‘view‘, function () use($di)  {
            $view = new \Phalcon\Mvc\View();
            //var_dump($di[‘modules‘][‘home‘][‘viewsDir‘]);exit;
            $view->setViewsDir(BASE_PATH . $di[‘modules‘][‘home‘][‘viewsDir‘]);
            $view->registerEngines(array(
                ‘.phtml‘ => ‘Phalcon\Mvc\View\Engine\Php‘
				));
            return $view;

        });

    }

}

  

原文地址:https://www.cnblogs.com/achengmu/p/9044431.html

时间: 2024-10-21 21:22:21

phalcon: 目录分组后的acl权限控制的相关文章

Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制

一.需求 做一个类似QQ登录似的app,将数据写到ROM文件里,并对数据进行回显. 二.截图 登录界面: 文件浏览器,查看文件的保存路径:/data/data/com.amos.datasave/files/LoginTest.txt------/data/data/(包名)/files/(文件名) 导出的文件内容: 三.实现代码 新建一个Android 工程.这里我选择的是2.1即API 7,进行开发的,其它都是默认下一步下一步即可. /datasave/res/layout/activity

<实训|第十三天>linux中ACL权限控制以及磁盘配额,附编译属于自己的linux内核

[[email protected]~]#序言 首先讲讲昨天关于缩容失败,开不机的解决方法:ACL权限也算是一个很重要的知识点,不难,但是很实用:磁盘配额一般不需要自己弄,但是要懂得原理.剩下的就是编译属于自己的linux内核,根据自己的需求不论是硬件还是其他,你都可以定制,但是编译成功与否这个我不敢保证,我也编译了两次才成功的.  开班第十三天: [[email protected]~]#今天的课程大纲 1.缩容失败原因以及开不了机解决方法 2.Linux中ACL权限的详解 3.讲解一下磁盘配

ZooKeeper系列(五)—— ACL 权限控制

一.前言 为了避免存储在 Zookeeper 上的数据被其他程序或者人为误修改,Zookeeper 提供了 ACL(Access Control Lists) 进行权限控制.只有拥有对应权限的用户才可以对节点进行增删改查等操作.下文分别介绍使用原生的 Shell 命令和 Apache Curator 客户端进行权限设置. 二.使用Shell进行权限管理 2.1 设置与查看权限 想要给某个节点设置权限 (ACL),有以下两个可选的命令: # 1.给已有节点赋予权限 setAcl path acl

Linux下ACL权限控制以及用sudo设置用户对命令的执行权限

ACL权限分配 1.setfacl命令设置文件权限 setfacl -m u:user1:rw root.txt setfacl -m u:user2:rwx root.txt 2.getfacl命令查看文件权限 getfacl root.txt [[email protected] ~]# getfacl text.txt  # file: text.txt # owner: root # group: root user::rw- user:wangteng:rw- group::r-- m

Linux - 文件ACL权限控制

getfacl 1.test # 查看文件ACL权限 setfacl -R -m u:xuesong:rw- 1.test # 对文件增加用户的读写权限 -R 递归 原文地址:https://www.cnblogs.com/sharesdk/p/8677980.html

Laravel 5.1 ACL权限控制 二 之策略类

随着应用逻辑越来越复杂,要处理的权限越来越多,将所有权限定义在AuthServiceProvider显然不是一个明智的做法,因此Laravel引入了策略类,策略类是一些原生的PHP类,和控制器基于资源对路由进行分组类似,策略类基于资源对权限进行分组管理. 1.生成策略类 php artisan make:policy PostPolicy 2.在AuthServiceProvider的policies属性中注册策略类: 'App\Post' => 'App\Policies\PostPolicy

权限管理ACL权限

简介 文件的权限一般主要针对三种用户类型:所有者.用户组.其他人:如果有一个用户,我们希望他对文件的权限不在上述三种用户权限之内,我们需要怎么做呢?再新添一个用户组,并将该用户组设为文件的用户组?不可以,一个文件只能有一个用户组,如果指定了新的用户组,之前的用户组将作废.ACL命令就是为了解决三种基本用户类型不满足要求时的问题 查看分区的ACL权限是否开启 ACL权限需要文件所在的分区的支持:首先查看一下系统有哪些分区,使用df -h命令 根分区的文件系统是/dev/sda5,查看该分区是否开启

linux中ACL权限

1.ACL权限简介与开启 一.ACL权限是为了解决所有者/所属组/其他人三种身份不足的问题 二.查看分区ACL权限是否开启 dumpe2fs命令是查询指定分区详细文件系统信息的命令 dumpe2fs -h /dev/sda3 -h 仅显示超级块中信息,而不显示磁盘块组的详细信息 [[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 14G 25G 36% / devtmpfs 9

递归acl权限和默认acl权限

递归acl权限,是指父目录在设定acl权限时,所有子文件和子目录也会拥有相同的acl权限.(主要针对目录下已有的文件) 1 [[email protected] vampire]$ ll 2 total 0 3 -rw-rw-r-- 1 vampire vampire 0 May 18 22:11 anothertest.file 4 -rw-rw-r-- 1 vampire vampire 0 May 18 22:11 test.file 可以看到当前vampire目录下的两个文件都没有acl