- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有 5 种类型的用户:
这是一个分层设置,其中每个用户都拥有每个先前用户的权限。要在我的项目中进行设置,我可以轻松地编写:
class RootFactory(object):
__acl__ = [
(Allow, '__ADMIN__', ALL_PERMISSIONS),
(Allow, 'creator', ('VIEWER', 'ANALYST', 'MANAGER', 'CREATOR')),
(Allow, 'manager', ('VIEWER', 'ANALYST', 'MANAGER')),
(Allow, 'analyst', ('VIEWER', 'ANALYST')),
(Allow, 'viewer', ('VIEWER')),
(Allow, Everyone, NO_PERMISSION_REQUIRED)
]
def __init__(self, request):
self.request = request
然后,例如,在我的 views.py 中,我会:
@view_config(route_name='mgmt_handler', renderer='manage.jinja2', permission='MANAGER')
def mgmt_handler(request):
pass # do stuff
这适用于大多数 实例。但是,我不确定如何最好地完成以下操作:
如何通过允许用户 1(查看者)根据需要拥有某些更高的权限来使此访问控制更加“精细”?这是否属于“对象级”安全领域?在大多数情况下,全局根工厂就足够了,但是我如何适应低层用户被授予更高权限或高层用户被拒绝更低权限的情况?
<有没有一种方法可以方便地确定特定用户的原则,以便在我看来我可以说一些具有以下效果的内容:if user.principle in list_of_permissions: do something...
?或者,这只是来自存储用户组的数据库的另一个查询?
案例和要点,我的目标是拥有一个灵活的、分层的权限系统。最有效的方法是什么?我阅读的教程仅涉及更简单的全局策略(我确实理解)。我的部分问题是如何全面了解对象/实例级安全性。
感谢您的帮助。
最佳答案
我不确定我是否清楚地了解了您想要实现的目标。据我了解,您有一些用户组对系统中的每个对象具有共同的权限,并且要为特定用户调整对特定对象的访问。例如,对象的所有者拥有该对象的所有权限,而不管所有者的用户组如何。
首先,您应该使用 location-aware resources 的层次结构.通过这种方式,您可以在根资源中保留默认权限并在子资源中调整它们:
class RootFactory(object):
__name__ = ''
__parent__ = None
__acl__ = [
(Allow, '__ADMIN__', ALL_PERMISSIONS),
(Allow, 'creator', ('VIEWER', 'ANALYST', 'MANAGER', 'CREATOR')),
(Allow, 'manager', ('VIEWER', 'ANALYST', 'MANAGER')),
(Allow, 'analyst', ('VIEWER', 'ANALYST')),
(Allow, 'viewer', ('VIEWER')),
# (Allow, Everyone, NO_PERMISSION_REQUIRED)
# It seems, here you want to deny access for all other users,
# so you should use this:
# (Deny, Everyone, ALL_PERMISSIONS)
# or simply:
DENY_ALL
]
def __init__(self, request):
self.request = request
def __getitem__(self, name):
return ChildObject(name, self)
然后在子对象的构造函数中,你可以为这个特定的对象添加一个特殊的权限:
class ChileObject(object):
def __init__(self, request, name, parent):
self.__parent__ = parent
self.__name__ = name
# Do some stuff, for example loading object from DB
# and populate other attributes of the object.
# Then add permission for the object's owner
self.__acl__ = [(Allow, self.owner_id, ALL_PERMISSIONS)]
结果 ACL 将是根的 ACL 和 child 的 ACL 的合并版本,即:
[
(Allow, self.owner_id, ALL_PERMISSIONS),
(Allow, '__ADMIN__', ALL_PERMISSIONS),
(Allow, 'creator', ('VIEWER', 'ANALYST', 'MANAGER', 'CREATOR')),
(Allow, 'manager', ('VIEWER', 'ANALYST', 'MANAGER')),
(Allow, 'analyst', ('VIEWER', 'ANALYST')),
(Allow, 'viewer', ('VIEWER')),
DENY_ALL
]
关于你的第二个问题,你可以在pyramid.security中找到一个有用的权限检查函数。模块。
关于python - 遇到 "fine-grained" Pyramid ACL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21921812/
微调 API 中关于 model 属性的 OpenAI 文档说明有点令人困惑: model The name of the base model to fine-tune. You can selec
微调 API 中关于 model 属性的 OpenAI 文档说明有点令人困惑: model The name of the base model to fine-tune. You can selec
当涉及到语言模型(LLM)的教学微调时,什么时候应该选择有监督的微调培训器(SFTTrainer)而不是常规的Transformers培训器?据我所知,常规的Transformers培训人员通常指的是
最近在处理后台数据时需要实现文件上传.考虑到对浏览器适配上采用Fine Uploader. Fine Uploader 采用ajax方式实现对文件上传.同时在浏览器中直接支持文件拖拽[对浏览器版本有
1f45bd1e8577af66a05f5e3fadb0b29 通过ORPO对llama进行微调 前言 ORPO是一种新颖的微调技术,它将传统的监督微调和偏好对齐阶段整合到一个过程中。这减少了训
我希望使用 Fineuploader 为每个上传的项目添加标题/名称。每个附件都会在其旁边显示一个文本框,以便用户可以在按“上传”之前输入标题/名称 like this 我看过了,每个上传请求都会发送
假设我想一次上传多个文件,将 multiple 选项设置为 true 时我可以这样做: var myUploader = new qq.FineUploader({ element: $('#
使用 Fineuploader v3.3 的 jQuery 封装版本。 是否可以使用上传文件夹中已有的文件填充文件列表? 我认为“_addToList(id, name)”应该可以解决问题,但我无法让
log4j.properties log4j.rootLogger=FINE, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppende
我想在我的小程序中使用 java util 日志记录,日志级别为 FINE 及以下。 我在我的小程序的 jar 中放了一个 logging.properties 文件 handlers= java.u
我的域层需要一个实体具有与之关联的 1:N 图像。 由于 FineUploader 将每个图像作为单独的请求发送,我在第一个请求上创建一个实体(服务器端),并在第一个响应 JSON 中发送回该 ID
关闭。这个问题需要debugging details .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve this questio
我阅读了有关使用 Fine Uploader 进行缩放的文档: http://docs.fineuploader.com/features/scaling.html 是否可以仅考虑图片的高度来缩放图片
我正在使用很好的 uploader ,它运行得很好。现在,即使上传成功,它也会重试。这样一来,我就有了四个文件,而不是只有一个。 http://fineuploader.com/ 我的代码:
当我运行 Maven 时,我得到的输出就好像我指定了日志记录级别 FINE 一样,这使得很难找到实际的输出。我还得到了数百行列出显式和隐式绑定(bind)的信息。据我所知我根本没有配置 mvn 。我正
我在我的表单中使用 FineUploader:http://docs.fineuploader.com/branch/master/features/forms.html . 问题是,在我的表单文件中
我已经为此发了几个小时的消息,但无法让它工作。我对fineuploader的实现 $(document).ready(function() { //alert(qq.supportedFeatures
我有一个关于 fine uploader (3.0) 的奇怪问题,它适用于除 ie9 之外的所有浏览器。 没有js错误,就是上传一个0byte失败了。我正在使用 valums php,它在这里失败了:
我正在实现类似 Google Plus 上传窗口的功能,当窗口中的整个灰色区域 (div) 都可以点击时,文件选择器就会出现。 这是我正在尝试做的事情的简单模型代码 (jsfiddle) $(func
我正在使用Fine-uploader(繁体版)试图让用户上传文件到我们自己的服务器。我现在面临的挑战是我应该在正常上传过程之前先从服务器获取 token 。 token 将与每个上传请求/ block
我是一名优秀的程序员,十分优秀!