Forum

Benvenuto!

Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.

0

[14 CE] Javascript rpc.query session expired per utenti non loggati

Avatar
Luca Subiaco

Ciao a tutti, ho questo problema che non riesco a risolvere:

su un form custom ho fatto richiesta di ricevere dei dati  tramite:

 rpc.query({
            model: model,
            method: 'search_read',
            args: [domain, fields],
         }).then(function (data) {.........

ma ciò funziona solo con utenti loggati mentre per gli utenti pubblici, il model non è accessibile e odoo ritorna l'errore

raise http.SessionExpiredException("Session expired")

Come si risolve il problema?

Come è possibile forzare l'utente uguale a Portal User Template

Grazie mille

Luca



Avatar
Abbandona
1 risposta
0
Avatar
Davide Corio
Migliore risposta

Se l'utente pubblico non ha permesso di lettura su quel record, devi definire una ir.rule che glielo permetta.

Oltre a questo, prova a guarda l'esempio che trovi qui:

https://www.odoo.com/it_IT/forum/assistenza-1/using-sudo-on-javascript-rpc-query-135005

Avatar
Abbandona
0
Avatar
Luca Subiaco
Migliore risposta

Grazie per la risposta, funziona perfettamente.

Quindi al posto di chiamare il model si può chiamare il controller e farsi restituire ciò che ci serve.

Di seguiro l'esempio in javascript

session.rpc('/registration_new_state', {
'province_name':`${birth_state.value}`
})
.then(function (data) {
  console.log(data);
});


E qui il codice del controller:

@http.route('/registration_new_state', type="json", auth="public")
def registration_new_state(self, **post):
res = request.env['res.country.state'].search_read([('name', 'ilike', post.get('province_name'))])
  return res
Avatar
Abbandona