Files
suite/auth_admin/wizard/portal_wizard.py
2021-10-07 12:24:54 -07:00

40 lines
1.4 KiB
Python
Executable File

from odoo import api, fields, models, _
from ..models.res_users import admin_auth_generate_login
class PortalWizard(models.TransientModel):
_inherit = 'portal.wizard'
def admin_auth_generate_login(self):
self.ensure_one()
self.user_ids.admin_auth_generate_login()
return {
"type": "ir.actions.act_window",
"res_model": self._name,
"views": [[False, "form"]],
"res_id": self.id,
"target": "new",
}
class PortalWizardUser(models.TransientModel):
_inherit = 'portal.wizard.user'
force_login_url = fields.Char(string='Force Login URL')
def admin_auth_generate_login(self):
ir_model_access = self.env['ir.model.access']
for row in self.filtered(lambda r: r.is_portal):
user = row.partner_id.user_ids[0] if row.partner_id.user_ids else None
if ir_model_access.check('res.partner', mode='unlink') and user:
row.force_login_url = admin_auth_generate_login(self.env, user)
self.filtered(lambda r: not r.is_portal).update({'force_login_url': ''})
return {
'name': _('Portal Access Management'),
'type': 'ir.actions.act_window',
'view_mode': 'form',
'res_model': 'portal.wizard',
'res_id': self.wizard_id.id,
'target': 'new',
}