summaryrefslogtreecommitdiff
path: root/addons/calendar/models/ir_http.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/calendar/models/ir_http.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/calendar/models/ir_http.py')
-rw-r--r--addons/calendar/models/ir_http.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/addons/calendar/models/ir_http.py b/addons/calendar/models/ir_http.py
new file mode 100644
index 00000000..08acd868
--- /dev/null
+++ b/addons/calendar/models/ir_http.py
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from werkzeug.exceptions import BadRequest
+
+from odoo import models
+from odoo.http import request
+
+
+class IrHttp(models.AbstractModel):
+ _inherit = 'ir.http'
+
+ @classmethod
+ def _auth_method_calendar(cls):
+ token = request.params.get('token', '')
+
+ error_message = False
+
+ attendee = request.env['calendar.attendee'].sudo().search([('access_token', '=', token)], limit=1)
+ if not attendee:
+ error_message = """Invalid Invitation Token."""
+ elif request.session.uid and request.session.login != 'anonymous':
+ # if valid session but user is not match
+ user = request.env['res.users'].sudo().browse(request.session.uid)
+ if attendee.partner_id != user.partner_id:
+ error_message = """Invitation cannot be forwarded via email. This event/meeting belongs to %s and you are logged in as %s. Please ask organizer to add you.""" % (attendee.email, user.email)
+ if error_message:
+ raise BadRequest(error_message)
+
+ cls._auth_method_public()