タスクを割り当てた人だけに、プロジェクトモジュールのタスクを表示してもらいたいです。プロジェクトの他のユーザーにこの人のタスクを見せたくありません。
ただし、現在、ユーザーアクセス権を持っているユーザーは、割り当てられていなくてもすべてのタスクを表示できます。
これを回避するための回避策はありますか?
タスクを割り当てた人だけに、プロジェクトモジュールのタスクを表示してもらいたいです。プロジェクトの他のユーザーにこの人のタスクを見せたくありません。
ただし、現在、ユーザーアクセス権を持っているユーザーは、割り当てられていなくてもすべてのタスクを表示できます。
これを回避するための回避策はありますか?
OpenERP / Odooには、ユーザーグループに割り当てることができる2種類のセキュリティ制限があります。
アクセス権と記録ルールの両方を特定のグループに割り当てずにグローバルに定義することもできます。その場合、それらはすべての人に適用されます。レコードルールには1つの落とし穴があります。グローバルルールは他のルールによって緩和されない場合があるため(意図的に!)、注意して使用してください。
あなたの場合、プロジェクトタスクへのアクセスを自分のタスク(そしておそらくまだ割り当てられていないタスク)に明示的に制限するプロジェクトユーザーグループに1つの追加のレコードルールを定義する必要があるようです。次のパラメータを使用して、[セキュリティルール]メニューに新しいエントリを作成する必要があります。
project.task
See own tasks only
['|',('user_id','=',False),('user_id','=',user.id)]
[x]
[x]
[x]
[x]
Project / User
レコードルールのdomain
は、操作を実行しようとしているレコードで評価される標準のOpenERP / Odooドメインでありuser
、現在のユーザーのデータ(技術的には現在のユーザー)を含む変数を参照できbrowse_record
ます。ドキュメントにはの説明がありdomain
ます。
特別なユーザー(プロジェクトマネージャーなど)がシステム内のすべてのタスクを表示できるようにする場合は、すべてのタスクへのアクセスを許可する別のルールをプロジェクトマネージャーグループに追加することで、このルールを緩和できます。「すべて許可」を意味する特別な「ドメインフィルター」があり、別のより厳密なルールを緩和するのに役立ちます[(1,'=',1)]
。
注1:既存のレコードルールを見て、最初に何が行われているのかを確認し、レコードルールフォームを追加するときは、必ずレコードルールフォームの説明を読んでください。覚えておくべき重要なことの1つは、グループ固有のルールがOR
演算子と組み合わされていることです。したがって、上記のルールを追加すると、他のグループ固有のルールが引き続きアクセスを許可しているため、制限効果が表示されない場合があります。希望どおりの効果を得るには、それらを無効にするか、編集するか、適用するユーザーグループを変更する必要がある場合があります。
注2:アクセス権と記録ルールで何か問題が発生した場合、これらのセキュリティ制限は( Unixのユーザーと同様に)admin
適用されないため、アカウントの混乱をいつでも修正できることに注意してください。admin
root
注:OpenERP 7では、次のようなデフォルトルールを変更または無効にする必要があります。
プロジェクト/タスク:従業員:パブリック、ポータル、従業員、またはフォロー中または割り当て済み
ルールを機能させるため。
新しいセキュリティルールを作成し、[オブジェクト]を[ project.task ]として選択し、ドメインフィルターを[( "user_id"、 "="、user.id)]として指定します。グローバルになるように、グループを追加する必要はありません。それでおしまい!
私の問題はもう少し複雑でした。割り当てられたタスクのみを実行できるユーザーと、残りのタスクも表示できるユーザーが必要でした。
Odoo 11では、標準のプロジェクトユーザーが継承し、ユーザーが他のタスクを表示できるようEmployees \ Employee
にするルールを持っていることがわかりました。Project/Task: employees: follow required for follower-only projects
私がしたこと:
新しいグループを作成する->の複製Project / Users
odonyの答えからルールを実装しました->['|',('user_id','=',False),('user_id','=',user.id)]
Project/Task: employees: follow required for follower-only projects
からレコードルールを削除し、Employees / Employee
に追加しましたProject / Users
これで、プロジェクトユーザー、プロジェクトのすべてのタスクを表示できるユーザー、および割り当てられたタスクのみを表示できる ワーカーを決定できます。
openERP7で@user1534055がすでに指摘しているように、これは少し異なります。
名前の付いたルールを見つけるProject/Task: employees: public, portal, employee or following or assigned
('project_id.privacy_visibility', 'in', ['public', 'portal', 'employees']),
'&',
それを編集してルール定義から削除し、[保存]をクリックします。
この後、タスクは割り当てられた人だけに表示されます。