オフィサー グループに属していないユーザーが自分の従業員レコードのみを変更できるようにするレコード ルールを OpenERP 7.0 内で定義しようとしていますが、オフィサー グループのユーザーには完全な権限を許可する既存のグローバル ルールを維持します。次の詳細を使用してカスタムルールを設定するところまで来ました。
- 名前: User_edit_own_employee_rule
- オブジェクト: 従業員
- 閲覧申請:チェックあり
- 書き込み申請:チェック
- ルール定義:
[('user_id', '=', user.id)]
ただし、これは、ユーザーが自分以外の従業員レコードを読み取る機能を削除するだけのようです。私が知る限り、このルールを論理 OR 演算子と組み合わせて、オフィサー グループのユーザーにグループ ルールを適用する必要があります。これを達成する方法について誰かが私に何か指針を与えることができますか?
編集:したがって、私の望ましい動作は次のとおりです。
- すべてのユーザー (従業員グループ) は、すべての従業員レコードを検索して読み取ることができます。
- Employeeグループのユーザーは、自分の Employee レコードを編集できますが、他のユーザーは編集できません。
- 役員グループのユーザーは、すべての従業員レコードを編集できます (これは HR モジュールのデフォルトの動作です)。
これまでに試した:
- 上記のレコード ルール (User_edit_own_employee_rule) を変更して、読み取り操作ではなく書き込み操作のみに適用します (ユーザーはすべての従業員レコードを表示できますが、自分のレコードを含むレコードを編集することはできません)。
- hr.employee システム ユーザーのアクセス制御ルールを変更して、書き込み操作を許可します (ユーザーはすべての従業員レコードを編集できるようになりました)。
私が持っている 1 つの手掛かりは、API を使用してシェルで従業員の user_id を返すと、OpenERP が を返すこと[5, 'Joe Bloggs']
です。レコード ルールが外部キー関係を適切にクエリしているかどうか疑問に思っていますか?