![](/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.