You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

36 lines
1.2 KiB

# -*- coding: utf-8 -*-
# Copyright 2017 LasLabs Inc.
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
from uuid import uuid4
from odoo import api, SUPERUSER_ID
def migrate(cr, version):
"""Generate cookie keys for all users with MFA enabled and clean up."""
env = api.Environment(cr, SUPERUSER_ID, {})
user_model = env['res.users'].with_context(active_test=False)
mfa_users = user_model.search([('mfa_enabled', '=', True)])
for mfa_user in mfa_users:
mfa_user.trusted_device_cookie_key = uuid4()
# Clean up ir records for device model to prevent warnings
removed_model = 'res.users.device'
removed_model_record = env['ir.model'].search([
('model', '=', removed_model),
])
removed_model_fields = removed_model_record.field_id
removed_model_fields._prepare_update()
env['ir.model.constraint'].search([
('model', '=', removed_model_record.id),
]).unlink()
env['ir.model.data'].search([
('model', '=', 'ir.model'),
('res_id', '=', removed_model_record.id),
]).unlink()
cr.execute(
'DELETE FROM ir_model WHERE model = %s',
[removed_model],
)