私は、[カレンダー] - > [セキュリティ]フォルダ内の削除アクセス出してみました - あなたは変更カレンダーのセキュリティのcsvファイルで従業員がOdooでカレンダーイベントを削除しないように制限するにはどうすればよいですか?
答えて
>をcalendar_event_all従業員が、どんな結果に
access_calendar_attendee_employee,calendar.attendee_employee,model_calendar_attendee,base.group_user,1,1,1,1
を与えていない、これは、アクセスセキュリティのラインでありますカレンダーイベントの下のアクセス権:
access_calendar_event_all_employee,calendar.event_all_employee,model_calendar_event,base.group_user,1,1,1,0
カレンダーイベントがbase.group_user = Employeeのために削除されました。
あなたはタイプコード以下、その後、独自のグループを作成追加したい場合は
例:
<record model="res.groups" id="group_user">
<field name="implied_ids" eval="[(4, ref('group_no_one'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
私はすでにこれを行っていますが、効果はありません。それは他のユーザーが他のユーザーイベントを削除することができます –
私は理解できませんか? –
私は既にアクセス権の変更を行っていますが、あるユーザが他のユーザのカレンダーイベントを削除することができます –
ここでアイデアです、リンク解除メソッドをオーバーライドすることにより てみ
def unlink(self,cr,uid,ids,context=None):
...
...
レコードを削除しようとするたびにunlinkメソッドが呼び出され、uidには現在のユーザーIDがあります。 したがって、すべてのユーザーの削除を制限する場合は、メソッド内で適切なメッセージを使用して例外を発生させます。 他のユーザーの削除を制限する場合は、現在のuidとrecord uidを比較してください。それらが異なる場合は、例外を発生させます。
JavaScriptを使用して目的を管理できます。このコードは、ユーザーだけで
openerp.your_module_name = function(instance) {
var _t = instance.web._t;
var Users = new openerp.web.Model('res.users');
var Events = new openerp.web.Model('calendar.event');
instance.web_calendar.CalendarView.include({
remove_event: function(id) {
var self = this;
do_removal = function() {
return $.when(self.dataset.unlink([id])).then(function() {
self.$calendar.fullCalendar('removeEvents', id);
});
};
confirm_removal = function() {
if (self.options.confirm_on_delete) {
if (confirm(_t("Are you sure you want to delete this record?"))) {
do_removal();
}
} else {
do_removal();
}
};
Users.call('has_group', ['put_here_the_module_name_where_the_group_which_can_remove_is_declared.put_here_the_group_which_can_remove'])
.done(function(result) {
if (result == true) {
confirm_removal();
} else {
alert(_t("Your user has not permission to delete this event"));
}
});
},
:カスタムモジュールのごsrc/static
フォルダ内のJSファイルを作成し、このコードを追加します(これはあなたのモジュールの__openerp__.py
のdata
でファイルをJS含めることを忘れないでください)指定されたグループ(Users.call
メソッド内)に属しているユーザーは、カレンダーイベントを削除できます(確認ダイアログが表示されます:本当にこのレコードを削除しますか?)。そのグループに所属していないユーザーには、警告メッセージが表示されます。ユーザーはこのイベントを削除する権限を持っていません。
このようにunlinkメソッドを拡張することができます。
from openerp import models, api, exceptions
class CalendarEvent(models.Model):
_inherit = "calendar.event"
@api.multi
def unlink(self):
for record in self:
if record.create_uid != self.uid:
raise exceptions.Warning(('Error'), ('You cannot delete an event that you did not create.'))
return super(ClassName, self).unlink()
あなたはこのルールで、彼らは同様にそれを編集することはできませんことを
<record model="ir.rule" id="calendar_event_rule">
<field name="name">Calendar Event : cannot delete someone else's event</field>
<field name="model_id" ref="model_calendar_event"></field>
<!-- Omitting group as you want it to be global -->
<field name="domain_force">[('create_uid', '!=', user.id)]</field>
<field eval="0" name="perm_write"></field>
<field eval="1" name="perm_read"></field>
<field eval="0" name="perm_unlink"></field>
<field eval="1" name="perm_create"></field>
</record>
ノートレコードルールを使用することができます。
- 1. どのように従業員
- 2. コミットが決して削除されないようにするにはどうすればよいですか?
- 3. GmailがURLの値を削除しないようにするにはどうすればよいですか?
- 4. IIS7がCookieを削除しないようにするにはどうすればよいですか?
- 5. xqueryを使用して従業員がいない従業員を探す
- 6. 最後のフォームが削除されないようにするにはどうすればよいですか?
- 7. TextBoxに行を追加/削除しないようにするにはどうすればよいですか?
- 8. iOSアプリケーションの削除を制限するにはどうすればよいですか? (MDM)
- 9. LandscapeでmodalViewControllerを制限するにはどうすればよいですか?
- 10. 302リダイレクトに従わないようにSystem.Net.Http.HttpClientを取得するにはどうすればよいですか?
- 11. マーカーが削除されたときにInfoWindowを削除するにはどうすればよいですか?
- 12. リモートブランチが削除されたときにローカルリモートトラッキングブランチを削除するにはどうすればよいですか?
- 13. postgresqlでストアドプロシージャを削除するにはどうすればよいですか?
- 14. スパンをインプレイスで削除するにはどうすればよいですか?
- 15. Nokogiriでノードを削除するにはどうすればよいですか?
- 16. NSMutableURLRequestでヘッダーを削除するにはどうすればよいですか?
- 17. Yiiで行を削除するにはどうすればよいですか?
- 18. Railsでワイルドカードクッキーを削除するにはどうすればよいですか?
- 19. コーディングウィンドウでエラーメッセージを削除するにはどうすればよいですか?
- 20. ItemRendererでEventListenerを削除するにはどうすればよいですか?
- 21. ホームページでウォーターマークを削除するにはどうすればよいですか?
- 22. Androidでナビゲーションバーを削除するにはどうすればよいですか?
- 23. Mercurialでリモートブックマークを削除するにはどうすればよいですか?
- 24. plistをプログラムで削除するにはどうすればよいですか?
- 25. リンククリックでアウトラインを削除するにはどうすればよいですか?
- 26. ファイルにデータストアを削除するにはどうすればよいですか?
- 27. すでに限定されたクエリを制限するにはどうすればよいですか?
- 28. TFS 2012で作業項目を削除するにはどうすればよいですか?
- 29. これらの制限(ビジネス制限)を適用するにはどうすればよいですか?
- 30. 地区および従業員の従業員数をカウントするクエリ
"1"はアクセス権を付与することを意味し、 "0"はその逆を意味します。 –
はい私はそれを知っていますが、0にしても影響しませんでした。 –
"calender.attendee_employee"モデルのすべてのアクセス権を調べ、どのグループが削除権を持っているかを確認して、 。ユーザーがデータを削除することができる他のアクセス権のために発生する可能性があります。 –