我有一个用例,我需要为用户分配编辑高度动态项目的权限,该项目可能有成百上千个。每个用户( 属于相同类型或组
)必须分配给其中一些项目(并且不同的用户可以访问相同的 Company Items
)。此外,这些物品的数量会迅速增加或消失。这些项目与用户没有内在联系,但必须任意分配给他们。
让我们称这些项目为 公司项目 。
因此,我希望能够将 公司项目
分配给用户,并动态撤消该访问权限。然后,在控制器内部使用这些分配来检查是否可以执行某些操作…从概念上讲,问题始终相同:测试用户是否有权访问表(
公司项目 表)中的特定项目/行。
我的想法是使用yii
RBAC系统,同时尝试 使授权树保持静态 ,从而避免每次创建或删除 公司项目
时创建/删除角色或任务。相反,我想知道是否可以使用中的$data
参数assign($itemName, $userId, $bizRule, $data)
和类似于以下内容的树来执行此操作:
$params['companyItemId']``$data['companyItemsAllowed']``$data
*
Yii::app()->user->checkAccess('editItem', array('companyItemId' => 666));
这样,每当我们需要将用户分配更改为 Company Items时
,我们唯一需要做的就是更改$data['companyItemsAllowed']
原始分配内的数组。 角色总是一样的!
我决定采取以下方法,决定简单地维持后 公司项目的数组 里面$data['companyItemsAllowed']
是 不是
最好的以下要求:
Users
和之间创建了一个关联表CompanyItems
; 称呼它association_table
;bizRule
类似于以下内容:$ret = Yii::app()->dbConnection->createCommand('SELECT EXISTS(SELECT 1 FROM `association_table` WHERE user_id=:userId AND company_item_id=:companyItemId)')
->queryScalar(array(‘:userId’ => $params[‘userId’], ‘companyItemId’ => $params[‘companyItemId’]));
return $ret;
这使我可以 维护访问控制界面 ,如下所示:
Yii::app()->user->checkAccess('editItem', array('companyItemId' => 666));
(回想一下, 我们不需要userId
在$params
数组上继续传递!。)
当然 ,这将实际分配 公司项目 的权限与 RBAC
系统分开了:我editCompanyItemRole
使用Yii提供的RBAC机制分配了一些用户,但是每个实际项目必须通过在association_table
…上插入一行来单独分配。
因此,尽管首先想到的是在内部维护一系列
公司项目$data
可能会起作用,但我认为这是最好且更灵活的方法。而且,关于的一般想法bizRule
似乎可行。
我有2个与firestore的firebase项目,让我们称他们为A和B,他们都有自己的web客户端。现在A web客户机需要读取B firestore数据库,所以我需要允许A客户机在B的某些集合下对firestore执行某些操作。是否有一种方法可以在使用firestore规则的同时使用B中A的身份验证数据来允许此类操作?。是否有一种方法可以将auth令牌从a链接到B中允许它们?。 任何机制都行得
问题内容: 我有一个像这样的json块: 我如何获取此令牌包含的所有关键项目。例如,从上面的代码中,我希望具有“ ADRESS_LOCATION”,“ LOCATION”,“ FLOOR_NUMBER”和“ self”。 问题答案: 您可以将转换为,然后使用方法获取对象属性的列表。从那里,您可以轻松获得名称。 像这样: 输出:
本文向大家介绍详解Springboot+React项目跨域访问问题,包括了详解Springboot+React项目跨域访问问题的使用技巧和注意事项,需要的朋友参考一下 一、开发环境 框架:springboot 1.5.10.RELEASE 开发工具:IDEA JDK:1.8 前端框架:React 15.6.1 浏览器:Chrome浏览器 二、跨域问题 本地使用ajax访问localhost:808
问题内容: 我是Python和Django的新手。我目前正在探索使用Scrapy抓取网站并将数据保存到Django数据库。我的目标是根据用户提供的域来运行蜘蛛。 我写了一个Spider来提取我需要的数据,并在调用时将其正确存储在json文件中 如刮板教程中所述。 我现在的目标是使Spider成功地将数据保存到Django数据库,然后根据用户输入来使Spider运行。 我知道与此主题相关的帖子很多,
我正在尝试通过我的android应用程序访问特定帐户的google drive。此外,我还可以使用google选项登录,这样用户就可以通过google登录应用程序,这将是play services使用的google帐户。 但是,我想在特定的google drive帐户上存储一些文件,比如说
使用指南 - 统计设置 - 统计规则设置 - 排除特定IP的访问流量 如果您不希望统计来自某个特定IP地址下的流量,可以在“管理”->“统计规则设置”->“排除规则设置”中设置要排除的IP地址,使得报告数据中不包含该IP地址下的流量,如公司内网IP。 您可以批量排除IP,如:202.120.45.8-202.120.45.79