from odoo import http
from odoo.http import request
import json

class CorsHandler(http.Controller):
    # This specifically targets the authentication endpoint for CORS
    @http.route('/web/session/authenticate', type='json', auth="none", cors="*")
    def authenticate_cors(self, db, login, password, base_location=None):
        request.session.authenticate(db, login, password)
        return request.env['ir.http'].session_info()

    # Generic search_read for the dashboard apps
    @http.route('/web/dataset/call_kw', type='json', auth="user", cors="*")
    def call_kw_cors(self, model, method, args, kwargs, path=None):
        return request.env[model].with_user(request.uid).call_kw(method, args, kwargs)
