In this commit we rewrite a bit add_click in order to remove the inlined sudo and ease inheritance and parameter management inside the method. Access through controllers is sudo-ed as the main API method is now done with current user access rights. This commit is linked to task ID 1904277 and PR #28242.
22 lines
744 B
Python
22 lines
744 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import werkzeug
|
|
|
|
from odoo import http
|
|
from odoo.http import request
|
|
|
|
|
|
class LinkTracker(http.Controller):
|
|
|
|
@http.route('/r/<string:code>', type='http', auth='none', website=True)
|
|
def full_url_redirect(self, code, **post):
|
|
country_code = request.session.geoip and request.session.geoip.get('country_code') or False
|
|
request.env['link.tracker.click'].sudo().add_click(
|
|
code,
|
|
ip=request.httprequest.remote_addr,
|
|
country_code=country_code
|
|
)
|
|
redirect_url = request.env['link.tracker'].get_url_from_code(code)
|
|
return werkzeug.utils.redirect(redirect_url or '', 301)
|