È possibile estendere il metodo di scollegamento in questo modo.
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()
È possibile utilizzare le regole di registrazione
<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>
Si noti che con questa regola, essi non saranno in grado di modificarla pure.
"1" significa dare diritti di accesso e "0" significa viceversa. –
sì lo so, ma dare 0 non lo ha fatto, –
provare a esaminare tutti i diritti di accesso per il modello "calender.attendee_employee", e vedere quale gruppo sta avendo il diritto di eliminare, e controllare se questo utente è lì in quell'elenco . Può accadere a causa di qualche altro diritto di accesso che l'utente può ancora essere in grado di cancellare i dati. –