![](/img/trans.png)
[英]Restrict adding comments based on group permissions in Notebook - Odoo 14
[英]How To Restrict Pages or Models based on User/Group Permissions with CBVs?
借助Sk1p解决方案:
从django.contrib.auth.decorators导入Permission_required
ip_manager / urls.py:
urlpatterns = patterns('',
url(r'^(?P<groupname>\w+)/tag/add/$', permission_required('ip_manager.add_tag')(TagFormView.as_view()), name='tag-add'),
)
我试图限制用户添加,更改或删除模型。 我只使用CBV。 我看了以下示例。
和
如何在基于Django类的视图上使用Permission_required装饰器
我的问题是我想告诉用户需要访问哪个权限,但是我不确定如何指定它。 我尝试将登录权限作为arg传递给需要登录的用户,并在未设置权限的用户上对其进行了测试。 该方法不起作用,它仍然允许我添加新的模型对象。 有没有人有什么建议?
ip_manager / urls.py:
urlpatterns = patterns('',
url(r'^(?P<groupname>\w+)/tag/add/$', login_required(TagFormView.as_view(), 'ip_manager.add_tag'), name='tag-add'),
)
谢谢,瑞安
如果要指定所需的权限,则需要使用permission_required
装饰器 。 因为它需要一个参数,所以类似以下的内容应该起作用:
permission_required("your_permission")(TagFormView.as_view())
文档中也对此进行了说明: 装饰基于类的视图
限制基于类的视图(而不是URL路由)权限的另一种方法是在管理面板中使用Groups
,并在视图本身上使用PermissionRequiredMixin
。 只需像这样应用PermissionRequiredMixin
...
class MemoCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
permission_required = 'memos.can_change_memo'
model = Memo
...然后将用户添加到管理面板中的特定Groups
,并将can_change_memo
权限应用于该Group
..或者更好的是,在注册时将该组应用于用户!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.