- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在研究 Cake 的 Auth/ACL 组件。我已经阅读了文档并完成了教程,但我仍然对我实际可以完成的事情不满意。我见过couple的other接近,但我不能说,因为我确实有一个直接的赢家。在我读过的任何教程/博客文章/文档中,“所有权”的用例都没有得到充分的涵盖。
我希望描述我的用例,如果有人可以建议一种方法,我洗耳恭听,否则我可能只能尝试自己做一些事情;o)
<小时/>这基本上模仿了一组简单的博士办公室。
对于 ARO 来说开始很容易:
组和用户之间存在“hasOne”关系(即一个用户只能属于一个组)。
现在我们使用树形结构的 ACO,如 Aidan Lister considers :
/root
/practice
/practice_profile
/practice_updates
/patients
/entries
/profiles
/other_things
每个护理人员都可以参与包括其患者在内的实践。这使得看护者可以访问患者写的任何内容。最重要的是,患者将只能能够看到/编辑/等等......他拥有的任何东西。我读过的任何文章中都没有具体涉及这一点。我知道对于文件系统类型的权限来说,这是很常见的,但我什至不想走这条路......
在 Cake 的核心中使用 Auth/ACL,它并没有真正获得这样的权限。它似乎在说“好吧,如果你是 X 组的一部分,那么你就可以执行 Y 功能。”因此,似乎属于 members
组的任何用户都可以访问所有其他成员的内容,并且所有管理员
都可以访问所有实践。
还有其他人遇到过这种用例吗?有进一步阅读的建议吗?有已知的解决方案吗?
编辑:所以所有的答案都很棒,所以大家都赞成。我强烈建议您查看由 bancer 提供的我没有找到的帖子,因为它最终向我指出了一些很酷的东西。但最终,答案都隐藏在文档中,我只是第一次没有完全“明白”。另外,当我读到 cakeqs 时,我顿时恍然大悟。关联。所以答案交给本杰明。
最佳答案
也许这会给你一些启发。这是我开发的 CMS 的 acos 表的摘录。通过使用其他明显未使用的 model
列,我获得了额外的控制层,可以让我设置页面的可访问性。
id parent_id model foreign_key alias lft rght
1462 1176 page NULL about-us 285 286 #display page url
1515 1176 page NULL leo-test 291 292 #display page url
1195 1176 NULL NULL ajaxSetStatus 261 262 #function
1194 1176 NULL NULL walkTree 259 260 #function
然后我在 Controller 中执行类似的操作,以查看当前用户是否有权查看请求的页面(如果未登录,用户默认为匿名):
function view($url=null)
{
$nD = $this->NodeDescriptor->findByUrl($url);
if(!$nD) $this->redirect(array('action'=>'error'));
$user = ($this->Auth->user())?$this->Auth->user():'Anonymous';
if(!$this->Acl->check($user,"{$url}"))
$this->redirect($this->referer());
...
关于cakephp - Cake的ACL组件及 "ownership"的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3421197/
如果我有一个包含许多相互依赖的项目的大型代码库,例如,projects/A、projects/B 和 projects/C ,其中 A 需要 B,B 需要 C,每个项目都有一个Cake 构建脚本,例如
我是 cake php 的新手。我有两张 table ce_landing ce_stat 结构是 ce_stat id keyword click 1 keyw
我想知道在 Scala 中为 DI 使用函数和 Cake 模式之间的区别。我想出了以下理解,我想知道这种理解是否正确。 让我们想象一个依赖图。 1)如果我们使用函数作为构建 block ,那么图由作为
我第一次尝试在 Ubuntu 12.04 上运行 givenwhenthen Node 模块,我已经按照他们网站上“Running Stories”标题下列出的设置说明进行操作 here. 我已经在
我在这里阅读了指南:http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html其中描述了 Cake 2.0 版的更改,但没有明
如何使用cake php让cake php查找查询结果数组key改为id值? $videos = $this->Video->find('all'); print_r($videos); 数组将是 A
也许是转储问题。 Cake指出它是一个可以用 C# 编写的构建自动化系统。我实际上正在玩弄一下,现在想知道是否可以在 build.cake 中调用 .Net 方法。当时我有以下 build.cake:
有人可以解释一下 CakePHP layout.ctp 文件中使用的这两行吗?似乎这两行都用于添加 css。那有什么区别呢?它们是如何工作的。 $this->Html->css('cake.gene
我必须在 .travis.yml 中添加什么内容才能运行 cake.build 并编译 .net core 项目? 最佳答案 首先添加build.sh到你的github存储库,然后赋予它执行权限,在
我遇到了这些重复的错误,无法解决。 PHP Fatal error: [CakeException] Unknown status code #0 /home/gourmet/public_html
我在 Cake 上遇到了一个奇怪的问题。我住在德国。当我添加帖子时,“已创建”数据库字段中的时间是 6 小时前。例如。下午 6 点创建的帖子在数据库中显示为上午 12 点创建。我使用托管服务器,并联系
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, over
我正在使用 Wamp 服务器,我正在尝试安装 CakePHP 2.0.0,但遇到了问题。 我将 CakePHP 2.0.0 文件放在我的 wamp 服务器文件夹“www”和“cake”文件夹中。 当我
如何让Cake php默认分页获取第一页和最后一页分页链接 Paginator->counter(array( 'format' => __('Page %page% of
我有一个名为“table”的表,它存储数据库中其他表的详细信息。我现在正在创建一个功能,以便每当表名插入到该表中时,都会创建相同的表。例如,如果我插入一个名为“wf_128fe”的表,则会使用一些动态
我在 cake php 2.1 中有以下代码。我尝试获取唯一字符串消息的列表,删除所有重复项。 $this->loadModel('ErrorMessage'); $this->ErrorMessag
我正在创建一个动态数组并将其保存到表中,这是我的保存模型 型号:我有类别,类别有很多产品,然后产品有很多子产品,子产品可能有很多选项 这是我创建动态复选框的查看代码
我是 cakephp 的新手,我正在尝试使用删除查询,但运行以下代码时没有行受到影响,也没有显示错误: $db=ConnectionManager::getDataSource('default');
我在 cake php 1.3 中编写了这个连接查询。 $supportbooks=$this->Supportbook->find('all',array('joins'=>array(
我正在用 php 编写代码,基本上将数据从 mySQL 数据库“映射”到另一个数据库。我使用的代码如下: $results = $this->query("select PT_FS_DATA_ID f
我是一名优秀的程序员,十分优秀!