diff --git a/login_user_details_save/README.rst b/login_user_details_save/README.rst new file mode 100644 index 000000000..75246bb90 --- /dev/null +++ b/login_user_details_save/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Save User's Login Info +======================= +This module allows us to Save User's Login Info For Odoo 17. + +Configuration +============= +* No additional configuration required + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Credits +------- +* Developer: (V18) Nivedhya T, + (V17) Ashwin A, + (V16) Swaroop N P +* Contact: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if +your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/login_user_details_save/__init__.py b/login_user_details_save/__init__.py new file mode 100644 index 000000000..623ebb15e --- /dev/null +++ b/login_user_details_save/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import controllers +from . import models diff --git a/login_user_details_save/__manifest__.py b/login_user_details_save/__manifest__.py new file mode 100644 index 000000000..483861b3a --- /dev/null +++ b/login_user_details_save/__manifest__.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': "Save User's Login Info", + 'version': '18.0.1.0.0', + 'category': 'Extra Tools', + 'summary': "Allows us to save our login info for easier access next time", + 'description': """ + This app allows us to save our login info , our name will be + displayed in login page and we can click on it and it automatically + fills our username. """, + 'author': "Cybrosys Techno Solutions", + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['website', 'web'], + 'data': [ + 'security/ir.model.access.csv', + 'views/logout_popup_views.xml', + 'views/web_templates.xml', + ], + 'assets': { + 'web.assets_backend': [ + 'login_user_details_save/static/src/js/logout_replace.js', + ], + }, + 'images': ['static/description/banner.jpg'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/login_user_details_save/controllers/__init__.py b/login_user_details_save/controllers/__init__.py new file mode 100644 index 000000000..94a9b01e5 --- /dev/null +++ b/login_user_details_save/controllers/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import login_user_details_save diff --git a/login_user_details_save/controllers/login_user_details_save.py b/login_user_details_save/controllers/login_user_details_save.py new file mode 100644 index 000000000..ca7bb345e --- /dev/null +++ b/login_user_details_save/controllers/login_user_details_save.py @@ -0,0 +1,131 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +import odoo +from odoo import http +from odoo.http import request +from odoo.tools.translate import _ +from odoo.addons.web.controllers.home import Home as Home +from odoo.addons.web.controllers.session import Session +from odoo.addons.web.controllers.utils import ensure_db + +# Shared parameters for all login/signup flows +SIGN_UP_REQUEST_PARAMS = {'db', 'login', 'debug', 'token', 'message', 'error', + 'scope', 'mode', + 'redirect', 'redirect_hostname', 'email', 'name', + 'partner_id', + 'password', 'confirm_password', 'city', 'country_id', + 'lang'} +CREDENTIAL_PARAMS = ['login', 'password', 'type'] + +class SessionWebsite(Session): + """Extended session controller for website-related operation""" + + @http.route('/web/session/logout_popup', type='http', auth="public", + website=True) + def logout_popup(self): + """Render the logout popup template""" + login_details = request.env['logout.popup'].search( + [('user_id', '=', int(request.uid))]) + values = { + 'login_details': login_details.save_details if login_details + else False + } + return request.render('login_user_details_save.logout_popup_template', + values) + + @http.route('/web/session/save_logout', type='http', auth="public", + website=True, csrf=False) + def save_logout_details(self, **post): + """Save user details when 'save login details' checkbox is checked""" + login_name = request.env.user.login + logout_details_obj = request.env['logout.popup'] + record = logout_details_obj.search( + [('user_id', '=', request.uid)],limit=1) + if post.get('rememberMeCheckbox') and not record: + logout_details_obj.create({ + 'name': login_name, + 'save_details': True, + 'user_id': request.uid + }) + if record and not post.get('rememberMeCheckbox'): + record.unlink() + return request.redirect('/web/session/logout') + + +class WebHome(Home): + """Extended Home controller for login-related operations""" + def web_login(self, redirect=None, **kw): + ensure_db() + request.params['login_success'] = False + + if request.httprequest.method == 'GET' and redirect and request.session.uid: + return request.redirect(redirect) + + # simulate hybrid auth=user/auth=public, despite using auth=none to be able + # to redirect users when no db is selected - cfr ensure_db() + if not request.uid: + public_user = request.env.ref('base.public_user') + request.update_env(user=public_user.id) + values = {k: v for k, v in request.params.items() if + k in SIGN_UP_REQUEST_PARAMS} + try: + values['databases'] = http.db_list() + except odoo.exceptions.AccessDenied: + values['databases'] = None + if request.httprequest.method == 'POST': + try: + credential = {key: value for key, value in request.params.items() if key in CREDENTIAL_PARAMS and value} + credential.setdefault('type', 'password') + uid = request.session.authenticate(request.db, + credential) + request.params['login_success'] = True + return request.redirect( + self._login_redirect(uid, redirect=redirect)) + except odoo.exceptions.AccessDenied as e: + if e.args == odoo.exceptions.AccessDenied().args: + values['error'] = _("Wrong login/password") + else: + values['error'] = e.args[0] + else: + if 'error' in request.params and request.params.get( + 'error') == 'access': + values['error'] = _( + 'Only employees can access this database. Please contact the administrator.') + if 'login' not in values and request.session.get('auth_login'): + values['login'] = request.session.get('auth_login') + + if not odoo.tools.config['list_db']: + values['disable_database_manager'] = True + conf_param = request.env['ir.config_parameter'].sudo() + base_url = conf_param.get_param('web.base.url') + log_data_list = [] + for log_data in request.env['logout.popup'].search([]): + log_data_list.append([log_data.name, base_url + + '/web/image?' + + 'model=res.users&id=' + + str(log_data.user_id.id) + + '&field=image_1920', log_data.user_id.name]) + values['login_data'] = log_data_list + response = request.render('web.login', values) + response.headers['X-Frame-Options'] = 'SAMEORIGIN' + response.headers['Content-Security-Policy'] = "frame-ancestors 'self'" + return response \ No newline at end of file diff --git a/login_user_details_save/doc/RELEASE_NOTES.md b/login_user_details_save/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..1452d8ddd --- /dev/null +++ b/login_user_details_save/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 19.07.2025 +#### Version 18.0.1.0.0 +#### ADD +- Initial Commit for Save User's Login Info diff --git a/login_user_details_save/models/__init__.py b/login_user_details_save/models/__init__.py new file mode 100644 index 000000000..237b34234 --- /dev/null +++ b/login_user_details_save/models/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import logout_popup diff --git a/login_user_details_save/models/logout_popup.py b/login_user_details_save/models/logout_popup.py new file mode 100644 index 000000000..d43a56fd4 --- /dev/null +++ b/login_user_details_save/models/logout_popup.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class LogoutPopup(models.Model): + """Model for checking if user wants to save his login details""" + _name = "logout.popup" + _description = "Logout Popup" + + name = fields.Char(string="Name", default="name", + help="This is the name field") + save_details = fields.Boolean(default=False, + string="Save Login Details ?", + help="Boolean field to save login details if enabled") + user_id = fields.Many2one('res.users', string='User', + help="ID of the user whose login details must be saved") diff --git a/login_user_details_save/security/ir.model.access.csv b/login_user_details_save/security/ir.model.access.csv new file mode 100644 index 000000000..0eb29600b --- /dev/null +++ b/login_user_details_save/security/ir.model.access.csv @@ -0,0 +1,4 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_login_user_details_save.access_logout_popup_user,access_logout_popup,login_user_details_save.model_logout_popup,base.group_user,1,1,1,1 +access_login_user_details_save.access_logout_popup_portal,access_logout_popup,login_user_details_save.model_logout_popup,base.group_portal,1,1,1,1 +access_login_user_details_save.access_logout_popup_public,access_logout_popup,login_user_details_save.model_logout_popup,base.group_public,1,1,1,1 diff --git a/login_user_details_save/static/description/assets/cybro-icon.png b/login_user_details_save/static/description/assets/cybro-icon.png new file mode 100644 index 000000000..06e73e11d Binary files /dev/null and b/login_user_details_save/static/description/assets/cybro-icon.png differ diff --git a/login_user_details_save/static/description/assets/cybro-odoo.png b/login_user_details_save/static/description/assets/cybro-odoo.png new file mode 100644 index 000000000..ed02e07a4 Binary files /dev/null and b/login_user_details_save/static/description/assets/cybro-odoo.png differ diff --git a/login_user_details_save/static/description/assets/icons/arrows-repeat.svg b/login_user_details_save/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/banner-1.png b/login_user_details_save/static/description/assets/icons/banner-1.png new file mode 100644 index 000000000..c180db172 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/banner-1.png differ diff --git a/login_user_details_save/static/description/assets/icons/banner-2.svg b/login_user_details_save/static/description/assets/icons/banner-2.svg new file mode 100644 index 000000000..e606d97d9 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/banner-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/banner-bg.png b/login_user_details_save/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/banner-bg.png differ diff --git a/login_user_details_save/static/description/assets/icons/banner-bg.svg b/login_user_details_save/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/banner-call.svg b/login_user_details_save/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/login_user_details_save/static/description/assets/icons/banner-mail.svg b/login_user_details_save/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/login_user_details_save/static/description/assets/icons/banner-pattern.svg b/login_user_details_save/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/banner-promo.svg b/login_user_details_save/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/brand-pair.svg b/login_user_details_save/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/check.png b/login_user_details_save/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/check.png differ diff --git a/login_user_details_save/static/description/assets/icons/chevron.png b/login_user_details_save/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/chevron.png differ diff --git a/login_user_details_save/static/description/assets/icons/close-icon.svg b/login_user_details_save/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/login_user_details_save/static/description/assets/icons/cogs.png b/login_user_details_save/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/cogs.png differ diff --git a/login_user_details_save/static/description/assets/icons/collabarate-icon.svg b/login_user_details_save/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/login_user_details_save/static/description/assets/icons/consultation.png b/login_user_details_save/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/consultation.png differ diff --git a/login_user_details_save/static/description/assets/icons/cybro-logo.png b/login_user_details_save/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/cybro-logo.png differ diff --git a/login_user_details_save/static/description/assets/icons/down.svg b/login_user_details_save/static/description/assets/icons/down.svg new file mode 100644 index 000000000..f21c36271 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/login_user_details_save/static/description/assets/icons/ecom-black.png b/login_user_details_save/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/ecom-black.png differ diff --git a/login_user_details_save/static/description/assets/icons/education-black.png b/login_user_details_save/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/education-black.png differ diff --git a/login_user_details_save/static/description/assets/icons/faq.png b/login_user_details_save/static/description/assets/icons/faq.png new file mode 100644 index 000000000..4250b5b81 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/faq.png differ diff --git a/login_user_details_save/static/description/assets/icons/feature-icon.svg b/login_user_details_save/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/feature.png b/login_user_details_save/static/description/assets/icons/feature.png new file mode 100644 index 000000000..ac7a785c0 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/feature.png differ diff --git a/login_user_details_save/static/description/assets/icons/gear.svg b/login_user_details_save/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/hero.gif b/login_user_details_save/static/description/assets/icons/hero.gif new file mode 100644 index 000000000..824fca63d Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/hero.gif differ diff --git a/login_user_details_save/static/description/assets/icons/hire-odoo.svg b/login_user_details_save/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/hotel-black.png b/login_user_details_save/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/hotel-black.png differ diff --git a/login_user_details_save/static/description/assets/icons/license.png b/login_user_details_save/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/license.png differ diff --git a/login_user_details_save/static/description/assets/icons/life-ring-icon.svg b/login_user_details_save/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/lifebuoy.png b/login_user_details_save/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/lifebuoy.png differ diff --git a/login_user_details_save/static/description/assets/icons/mail.svg b/login_user_details_save/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/login_user_details_save/static/description/assets/icons/manufacturing-black.png b/login_user_details_save/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/manufacturing-black.png differ diff --git a/login_user_details_save/static/description/assets/icons/notes.png b/login_user_details_save/static/description/assets/icons/notes.png new file mode 100644 index 000000000..ee5e95404 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/notes.png differ diff --git a/login_user_details_save/static/description/assets/icons/notification icon.svg b/login_user_details_save/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/odoo-consultancy.svg b/login_user_details_save/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/login_user_details_save/static/description/assets/icons/odoo-licencing.svg b/login_user_details_save/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/login_user_details_save/static/description/assets/icons/odoo-logo.png b/login_user_details_save/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/odoo-logo.png differ diff --git a/login_user_details_save/static/description/assets/icons/patter.svg b/login_user_details_save/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/pattern1.png b/login_user_details_save/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/pattern1.png differ diff --git a/login_user_details_save/static/description/assets/icons/pos-black.png b/login_user_details_save/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/pos-black.png differ diff --git a/login_user_details_save/static/description/assets/icons/puzzle-piece-icon.svg b/login_user_details_save/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/puzzle.png b/login_user_details_save/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/puzzle.png differ diff --git a/login_user_details_save/static/description/assets/icons/replace-icon.svg b/login_user_details_save/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/restaurant-black.png b/login_user_details_save/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/restaurant-black.png differ diff --git a/login_user_details_save/static/description/assets/icons/screenshot-main.png b/login_user_details_save/static/description/assets/icons/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/screenshot-main.png differ diff --git a/login_user_details_save/static/description/assets/icons/screenshot.png b/login_user_details_save/static/description/assets/icons/screenshot.png new file mode 100644 index 000000000..cef272529 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/screenshot.png differ diff --git a/login_user_details_save/static/description/assets/icons/service-black.png b/login_user_details_save/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/service-black.png differ diff --git a/login_user_details_save/static/description/assets/icons/skype-fill.svg b/login_user_details_save/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/skype.png b/login_user_details_save/static/description/assets/icons/skype.png new file mode 100644 index 000000000..51b409fb3 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/skype.png differ diff --git a/login_user_details_save/static/description/assets/icons/skype.svg b/login_user_details_save/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/login_user_details_save/static/description/assets/icons/star-1.svg b/login_user_details_save/static/description/assets/icons/star-1.svg new file mode 100644 index 000000000..7e55ab162 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/star-1.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/star-2.svg b/login_user_details_save/static/description/assets/icons/star-2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/star-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/support.png b/login_user_details_save/static/description/assets/icons/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/support.png differ diff --git a/login_user_details_save/static/description/assets/icons/test-1 - Copy.png b/login_user_details_save/static/description/assets/icons/test-1 - Copy.png new file mode 100644 index 000000000..f6a902663 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/test-1 - Copy.png differ diff --git a/login_user_details_save/static/description/assets/icons/test-1.png b/login_user_details_save/static/description/assets/icons/test-1.png new file mode 100644 index 000000000..0908add2b Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/test-1.png differ diff --git a/login_user_details_save/static/description/assets/icons/test-2.png b/login_user_details_save/static/description/assets/icons/test-2.png new file mode 100644 index 000000000..4671fe91e Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/test-2.png differ diff --git a/login_user_details_save/static/description/assets/icons/trading-black.png b/login_user_details_save/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/trading-black.png differ diff --git a/login_user_details_save/static/description/assets/icons/training.png b/login_user_details_save/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/training.png differ diff --git a/login_user_details_save/static/description/assets/icons/translate.svg b/login_user_details_save/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/update.png b/login_user_details_save/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/update.png differ diff --git a/login_user_details_save/static/description/assets/icons/user.png b/login_user_details_save/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/user.png differ diff --git a/login_user_details_save/static/description/assets/icons/video.png b/login_user_details_save/static/description/assets/icons/video.png new file mode 100644 index 000000000..576705b17 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/video.png differ diff --git a/login_user_details_save/static/description/assets/icons/whatsapp.png b/login_user_details_save/static/description/assets/icons/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/whatsapp.png differ diff --git a/login_user_details_save/static/description/assets/icons/wrench-icon.svg b/login_user_details_save/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/login_user_details_save/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/login_user_details_save/static/description/assets/icons/wrench.png b/login_user_details_save/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/wrench.png differ diff --git a/login_user_details_save/static/description/assets/modules/b1.png b/login_user_details_save/static/description/assets/modules/b1.png new file mode 100644 index 000000000..6998bd35b Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/b1.png differ diff --git a/login_user_details_save/static/description/assets/modules/b2.png b/login_user_details_save/static/description/assets/modules/b2.png new file mode 100644 index 000000000..cf81c09f8 Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/b2.png differ diff --git a/login_user_details_save/static/description/assets/modules/b3.png b/login_user_details_save/static/description/assets/modules/b3.png new file mode 100644 index 000000000..2b6f88ac4 Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/b3.png differ diff --git a/login_user_details_save/static/description/assets/modules/b4.png b/login_user_details_save/static/description/assets/modules/b4.png new file mode 100644 index 000000000..206e14c47 Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/b4.png differ diff --git a/login_user_details_save/static/description/assets/modules/b5.png b/login_user_details_save/static/description/assets/modules/b5.png new file mode 100644 index 000000000..92c42030d Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/b5.png differ diff --git a/login_user_details_save/static/description/assets/modules/b6.png b/login_user_details_save/static/description/assets/modules/b6.png new file mode 100644 index 000000000..c63448497 Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/b6.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/screenshot1.png b/login_user_details_save/static/description/assets/screenshots/screenshot1.png new file mode 100644 index 000000000..6756e1c91 Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/screenshot1.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/screenshot2.png b/login_user_details_save/static/description/assets/screenshots/screenshot2.png new file mode 100644 index 000000000..8237699bc Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/screenshot2.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/screenshot3.png b/login_user_details_save/static/description/assets/screenshots/screenshot3.png new file mode 100644 index 000000000..7275226da Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/screenshot3.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/screenshot4.png b/login_user_details_save/static/description/assets/screenshots/screenshot4.png new file mode 100644 index 000000000..1cf4dbab7 Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/screenshot4.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/screenshot5.png b/login_user_details_save/static/description/assets/screenshots/screenshot5.png new file mode 100644 index 000000000..e14a85cc9 Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/screenshot5.png differ diff --git a/login_user_details_save/static/description/banner.jpg b/login_user_details_save/static/description/banner.jpg new file mode 100644 index 000000000..e02fbeaef Binary files /dev/null and b/login_user_details_save/static/description/banner.jpg differ diff --git a/login_user_details_save/static/description/icon.png b/login_user_details_save/static/description/icon.png new file mode 100644 index 000000000..e2e708752 Binary files /dev/null and b/login_user_details_save/static/description/icon.png differ diff --git a/login_user_details_save/static/description/index.html b/login_user_details_save/static/description/index.html new file mode 100644 index 000000000..da3db6652 --- /dev/null +++ b/login_user_details_save/static/description/index.html @@ -0,0 +1,953 @@ + + + + + + Save User's Login Info + + + + + + + + + + +
+
+ + + +
+
+ Community +
+
+ Enterprise +
+
+
+ +
+
+
+
+

+ This app allows us to save our login info, our name will be displayed in login page, and we can click on it, and it automatically fills our username. +

+

Save User's Login Info +

+
+
+ +
+ +
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+

Key + Highlights

+
+
+
+
+ +
+
+ Prevents accidental logout. +
+

+

+
+
+
+
+
+ +
+
+ We can save our login details. +
+

+

+
+
+
+
+
+ +
+
+ We can remove this saved login details. +
+

+

+
+
+
+
+
+ +
+
+ Supported in Community and Enterprise. +
+

+

+
+
+
+
+ +
+
+
+ Save User's Login Info +

+ Are you ready to make your business more + organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + +
+
+ +
+
+
+
+ acc_bg +
+ +
+
+
+
+

+ Prevents + + accidental logout +

+
+
+

+ In this app the logout button doesn't log you out instantly, instead it asks for logout confirmation.

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ We can save our + + login details +

+
+
+

+ With the help of this app we can save our login details using the prompt that appears when we click logout, we can enable the 'save login details' checkbox to save our details and we can click save & logout to logout. +

+
+
+
+ + +
+
+
+
+
+
+
+
+
+

+ We can also delete our + + saved login details. +

+
+
+

+ We can delete our saved login details by unchecking the 'save login details' checkbox. +

+
+
+
+ + +
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+

+ Prevents accidental logout.

+
+ +
+
+
+
+
+
+ +
+

+ We can save our login details.

+
+ +
+
+
+
+
+
+ +
+

+ We can remove this saved login details.

+
+ +
+
+
+
+
+
+ +
+

+ Available in Odoo 18.0 Community & Enterprise.

+
+ +
+
+
+
+
+
+
+
+
+ +
+ +
+ +
+

+ This module allows users + to save their login information + (like username or email) in the browser. + When visiting the login page, + previously saved user names + are displayed, allowing users + to click and auto-fill their username. +

+
+
+ +
+ +
+

+ No, only the username + (or email, depending on the login) + is saved and displayed. + Passwords are not stored + or displayed by this module. +

+
+
+ +
+ +
+
+
+
+
+
+ +
+
+

+ Latest Release 18.0.1.0.0 +

+ + 27th May, 2025 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • +
+
+
+
+
+
+
+
+
+
+ + + +
+

+ Related Products +

+ +
+ +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + diff --git a/login_user_details_save/static/src/js/logout_replace.js b/login_user_details_save/static/src/js/logout_replace.js new file mode 100644 index 000000000..78a993668 --- /dev/null +++ b/login_user_details_save/static/src/js/logout_replace.js @@ -0,0 +1,35 @@ +/** @odoo-module **/ +// Import necessary modules and functions +import {registry} from "@web/core/registry"; +import {browser} from "@web/core/browser/browser"; +import { _t } from "@web/core/l10n/translation"; + +// Get the user menu item registry + +const serviceRegistry = registry.category("services"); +const userMenuRegistry = registry.category("user_menuitems"); +const removeLogoutService = { + start() { + // Remove the existing log out menu item + userMenuRegistry.remove('log_out'); + }, +}; +serviceRegistry.add("remove_log_out", removeLogoutService); + +function logOutItemNew(env) { + const route = "/web/session/logout_popup"; + return { + type: "item", + id: "logout_new", + class: "btn btn-link", + description: _t("Log out"), + href: `${browser.location.origin}${route}`, + callback: () => { + browser.location.href = route; + }, + sequence: 70, + }; +} + +// Add the new log out menu item +registry.category("user_menuitems").add("logout", logOutItemNew) diff --git a/login_user_details_save/views/logout_popup_views.xml b/login_user_details_save/views/logout_popup_views.xml new file mode 100644 index 000000000..42cf05217 --- /dev/null +++ b/login_user_details_save/views/logout_popup_views.xml @@ -0,0 +1,35 @@ + + + + + logout.popup.view.form + logout.popup + + + +
+ + + + +
+
+
+ + + + Confirm Logout + ir.actions.act_window + logout.popup + new + form + + + + + + form + + + +
diff --git a/login_user_details_save/views/web_templates.xml b/login_user_details_save/views/web_templates.xml new file mode 100644 index 000000000..d455f56f5 --- /dev/null +++ b/login_user_details_save/views/web_templates.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + +