diff --git a/auth_admin/__manifest__.py b/auth_admin/__manifest__.py index ab95847e..03dd16cb 100755 --- a/auth_admin/__manifest__.py +++ b/auth_admin/__manifest__.py @@ -23,6 +23,8 @@ Out of the box, only allows you to generate a login for an 'External User', e.g. 'auto_install': False, 'data': [ 'views/res_users.xml', + 'security/ir.model.access.csv', 'wizard/portal_wizard_views.xml', + 'wizard/res_users_wizard_views.xml', ], } diff --git a/auth_admin/models/res_users.py b/auth_admin/models/res_users.py index f1d1f48f..fa7e7907 100755 --- a/auth_admin/models/res_users.py +++ b/auth_admin/models/res_users.py @@ -1,4 +1,4 @@ -from odoo import models, api, exceptions +from odoo import models, api, exceptions, fields, _ from odoo.http import request from datetime import datetime from time import mktime @@ -77,7 +77,17 @@ class ResUsers(models.Model): login_url = admin_auth_generate_login(self.env, self) if login_url: - raise exceptions.UserError(login_url) + wizard = self.env['res.users.wizard'].create({ + 'force_login_url': login_url, + }) + return { + 'name': _('Generate Login URL'), + 'type': 'ir.actions.act_window', + 'view_mode': 'form', + 'res_model': 'res.users.wizard', + 'res_id': wizard.id, + 'target': 'new', + } return False @@ -90,3 +100,9 @@ class ResUsers(models.Model): str(request.session.uid) + ' original user id: ' + str(request.session.auth_admin)) else: raise + + +class ResUsersWizard(models.TransientModel): + _name = 'res.users.wizard' + + force_login_url = fields.Char(string='Force Login URL') diff --git a/auth_admin/security/ir.model.access.csv b/auth_admin/security/ir.model.access.csv new file mode 100644 index 00000000..2d4b394a --- /dev/null +++ b/auth_admin/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_auth_admin,access.res.users.wizard,model_res_users_wizard,base.group_user,1,1,1,1 diff --git a/auth_admin/views/res_users.xml b/auth_admin/views/res_users.xml index b818c870..2ba0fb4a 100755 --- a/auth_admin/views/res_users.xml +++ b/auth_admin/views/res_users.xml @@ -1,5 +1,6 @@ + auth_admin.res.users.tree res.users @@ -11,4 +12,5 @@ - \ No newline at end of file + + diff --git a/auth_admin/wizard/portal_wizard_views.xml b/auth_admin/wizard/portal_wizard_views.xml index 18984818..8a401aa0 100755 --- a/auth_admin/wizard/portal_wizard_views.xml +++ b/auth_admin/wizard/portal_wizard_views.xml @@ -7,7 +7,7 @@ - +