问题标签 [casl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
casl - 是否可以在 CASL 中使用嵌套对象定义规则
现在我有“用户”对象,其中包含名为“作者”的嵌套对象,其中包含 id 字段。如何为该对象定义规则?
此代码不起作用:
这一个都不是(嗯,它有效,但我将规则保存在 localStorage 中,并且在其中保存函数不是一个好主意)
vue.js - 将 casl 用于基于角色的权限时出错
这就是我使用casl定义能力的方式
能力.js
我已在 main.js 中注册
现在我想在组件中使用它:
这给了我错误: Error in render: "TypeError: t.on is not a function"
。我已经使用很少的在线资源实现了这一点。所以错误说罐子没有定义。
node.js - 使用 casl 创建用户以获得基于角色的权限
我正在尝试使用 casl-mongoose 进行基于角色的身份验证
角色.js
用户.js
即使我正确使用了角色,我也得到了 ForbiddenError。我想知道如何在 casl 中使用“create”。
json对象
casl - TypeError:无法读取未定义的“仅”属性
我正在尝试为我的 React 项目使用 React 测试库,但在尝试安装导入 CreatCanBountTo 的组件时出错,但出现错误:
TypeError: Cannot read property 'only' of undefined
> 1 | const { createCanBoundTo } = require('@casl/react');
我认为这是由于 casl 在测试运行之前没有被初始化。
提前感谢您的帮助。
casl - 使用 Ivy 和 CASL 构建问题
我已经尝试在我的项目中为 Angular 安装 CASL。不幸的是,当我尝试启动应用程序时,我收到以下错误消息:
我正在使用最新版本的角度“10.0.9”。如果我完全禁用源映射,则消息会消失,但在开发过程中它并不是一个真正的选择。
有任何想法吗 ?
reactjs - React CASL 条件在生产模式下不起作用 - Reactjs
我有一个有条件的功能。在条件满足时启用编写消息。这在开发模式下完美运行,但是当我尝试在生产模式下运行它时,can 方法总是给我false
但是 canCompose 总是false
以生产模式返回。我必须更改配置中的任何内容吗?
typescript - CASL 和 Typescript 基本 RBAC 设置
我一直在为一个新项目测试 CASL,并在获得一些帮助后获得了在 CodeSandbox 上配置的基本 typescript RBAC 设置:
https://codesandbox.io/s/wonderful-meadow-02kls?file=/src/index.ts
我从食谱中摘录了一些片段:
https://casl.js.org/v4/en/cookbook/roles-with-static-permissions
我遇到了许多错误,并且对 Typescript 的精通还不够了解,无法理解问题出在哪里。
任何帮助将非常感激。
javascript - casl中的项目级别权限
在我的情况下,权限不是基于角色的,也不会有一个我可以在登录后放置的中央权限对象。权限发生在项目级别。通过在项目级别上发生许可,我的意思是说,如果我有一个大约有 4 个项目的待办事项对象,那么每个项目可能会获得不同的许可,如下所示
对于这种情况,我如何使用 casl 处理权限?
这就是我正在做的
能力.js
可以.js
index.js
我也创建了一个沙箱
https://codesandbox.io/s/mystifying-leaf-i968u?file=/src/permission/index.js:0-1472
casl - 获得正确的允许条件字段
目前,我正在构建一个具有以下类似逻辑的应用程序:
基本上admin
应该允许创建一个没有字段限制的项目时间。并且none admin
应该只允许用户为他所属的项目设置指定的字段。
问题是我希望得到[]
作为输出,因为admin
应该允许设置项目时间的所有字段。
我找到的唯一解决方案是根据admin
用户条件设置所有字段。但这需要稍后在将新字段添加到项目时间模型中时进行大量迁移工作。(在我的情况下,也无法将第二个条件包含在 else 块中)
有没有其他更好的方法来做到这一点?或者,如果permittedFieldsOf
-function 优先考虑没有字段限制的条件会更好吗?
javascript - NestJs 基于用户属性和策略的 CASL 授权守卫
我正在尝试在 NestJS 和 CASL 中为列表/获取端点实现一个基于通用策略的防护。我正在关注这里的文档https://docs.nestjs.com/security/authorization#integrating-casl。
一个用户可以是多个组的一部分。我需要检查是否Article
或Books
实体groupId
与任何用户组匹配。并且仅在用户的组列表匹配时才允许用户阅读它们Article.id
并且Books.id
但是我无法得到它似乎正在工作
我在文章控制器中像这样使用它
我在 Books 控制器中像这样使用它