7

タスクを割り当てた人だけに、プロジェクトモジュールのタスクを表示してもらいたいです。プロジェクトの他のユーザーにこの人のタスクを見せたくありません。

ただし、現在、ユーザーアクセス権を持っているユーザーは、割り当てられていなくてもすべてのタスクを表示できます。

これを回避するための回避策はありますか?

4

5 に答える 5

18

OpenERP / Odooには、ユーザーグループに割り当てることができる2種類のセキュリティ制限があります。

  • アクセス権はCRUDyes/ noフラグ(Unix FSアクセス許可と同様)であり、モデルごとのアクセス制御を可能にします。これらは、このグループのメンバーが特定のドキュメントモデル(プロジェクトタスクなど)の任意のドキュメントに対して作成、読み取り、更新、および削除操作を実行できるかどうかを示します。デフォルトのポリシーはDENYであるため、ユーザーがグループのアクセス権の1つを介して操作を実行する権限を明示的に持っていない場合、デフォルトでは操作は拒否されます。
  • レコードルールは、CRUD操作に適用されるフィルターであり、アクセス権が既に付与されている場合は、ドキュメントごとのアクセス制御を許可します。ユーザーは、ドキュメントが少なくとも1つのレコードルールに一致する場合にのみ、特定のドキュメントに対して操作を実行できます。デフォルトのポリシーはALLOWであるため、特定のモデルにルールが存在しない場合、必要なアクセス権を持つユーザーがそのモデルのすべてのドキュメントにアクセスできます。

アクセス権と記録ルールの両方を特定のグループに割り当てずにグローバルに定義することもできます。その場合、それらはすべての人に適用されます。レコードルールには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適用されないため、アカウントの混乱をいつでも修正できることに注意してください。adminroot

于 2012-06-08T10:57:24.950 に答える
2

注:OpenERP 7では、次のようなデフォルトルールを変更または無効にする必要があります。

プロジェクト/タスク:従業員:パブリック、ポータル、従業員、またはフォロー中または割り当て済み

ルールを機能させるため。

于 2013-12-31T16:23:59.530 に答える
1

新しいセキュリティルールを作成し、[オブジェクト]を[ project.task ]として選択し、ドメインフィルターを[( "user_id"、 "="、user.id)]として指定します。グローバルになるように、グループを追加する必要はありません。それでおしまい!

于 2014-10-21T09:16:40.653 に答える
1

私の問題はもう少し複雑でした。割り当てられたタスクのみを実行できるユーザーと、残りのタスクも表示できるユーザーが必要でした。

Odoo 11では、標準のプロジェクトユーザーが継承し、ユーザーが他のタスクを表示できるようEmployees \ Employeeにするルールを持っていることがわかりました。Project/Task: employees: follow required for follower-only projects

私がしたこと:

  1. 新しいグループを作成する->の複製Project / Users

  2. odonyの答えからルールを実装しました->['|',('user_id','=',False),('user_id','=',user.id)]

  3. Project/Task: employees: follow required for follower-only projectsからレコードルールを削除し、Employees / Employeeに追加しましたProject / Users

これで、プロジェクトユーザー、プロジェクトのすべてのタスクを表示できるユーザー、および割り当てられたタスクのみを表示できる ワーカーを決定できます。

于 2020-02-20T05:11:01.320 に答える
0

openERP7で@user1534055がすでに指摘しているように、これは少し異なります。

名前の付いたルールを見つけるProject/Task: employees: public, portal, employee or following or assigned

関連するレコードルールを見つける

('project_id.privacy_visibility', 'in', ['public', 'portal', 'employees']), '&',それを編集してルール定義から削除し、[保存]をクリックします。

この後、タスクは割り当てられた人だけに表示されます。

于 2014-01-10T09:00:36.563 に答える