diff --git a/login_user_details_save/README.rst b/login_user_details_save/README.rst new file mode 100644 index 000000000..ae2e48734 --- /dev/null +++ b/login_user_details_save/README.rst @@ -0,0 +1,45 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: http://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 + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (LGPL v3). +( http://www.gnu.org/licenses/Lgpl-3.0-standalone.html) + +Credits +------- +Developers: + (V15) Jumana Haseen, + (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: ``__ \ No newline at end of file diff --git a/login_user_details_save/__init__.py b/login_user_details_save/__init__.py new file mode 100644 index 000000000..8011809a4 --- /dev/null +++ b/login_user_details_save/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Jumana Haseen (odoo@cybrosys.com) +# +# 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..45ffe354f --- /dev/null +++ b/login_user_details_save/__manifest__.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Jumana Haseen (odoo@cybrosys.com) +# +# 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", + 'category': 'Extra Tools', + 'version': '15.0.1.0.0', + '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': ['base', '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.png'], + 'license': 'LGPL-3', + 'installable': True, + 'application': False, + 'auto_install': 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..9496dd8ef --- /dev/null +++ b/login_user_details_save/controllers/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Jumana Haseen (odoo@cybrosys.com) +# +# 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..f9f491f95 --- /dev/null +++ b/login_user_details_save/controllers/login_user_details_save.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Jumana Haseen (odoo@cybrosys.com) +# +# 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.main import Home as WebHome +from odoo.addons.web.controllers.main import Session +from odoo.addons.web.controllers.main 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'} + + +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)]) + 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 Home(WebHome): + """Extended Home controller for login-related operations""" + + @http.route('/web/login', type='http', auth="none") + def web_login(self, redirect=None): + """fetching the saved logins and displaying them on the login page""" + ensure_db() + request.params['login_success'] = False + if request.httprequest.method == 'GET' and redirect and request.session.uid: + return request.redirect(redirect) + if not request.uid: + request.uid = odoo.SUPERUSER_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': + old_uid = request.uid + try: + uid = request.session.authenticate(request.session.db, + request.params['login'], + request.params['password']) + request.params['login_success'] = True + return request.redirect( + self._login_redirect(uid, redirect=redirect)) + except odoo.exceptions.AccessDenied as e: + request.uid = old_uid + 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' + return response 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..62612fba0 --- /dev/null +++ b/login_user_details_save/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 21.06.2024 +#### Version 16.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..866d85d3f --- /dev/null +++ b/login_user_details_save/models/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Jumana Haseen (odoo@cybrosys.com) +# +# 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..c2bba6bb0 --- /dev/null +++ b/login_user_details_save/models/logout_popup.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Jumana Haseen (odoo@cybrosys.com) +# +# 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 models, fields + + +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/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/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/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/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/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/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/logo.png b/login_user_details_save/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/login_user_details_save/static/description/assets/icons/logo.png differ 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/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.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/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/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/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/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/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/1.png b/login_user_details_save/static/description/assets/modules/1.png new file mode 100644 index 000000000..eaa022f4d Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/1.png differ diff --git a/login_user_details_save/static/description/assets/modules/2.png b/login_user_details_save/static/description/assets/modules/2.png new file mode 100644 index 000000000..227d3bbbc Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/2.png differ diff --git a/login_user_details_save/static/description/assets/modules/3.png b/login_user_details_save/static/description/assets/modules/3.png new file mode 100644 index 000000000..d7f4a22c3 Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/3.png differ diff --git a/login_user_details_save/static/description/assets/modules/4.png b/login_user_details_save/static/description/assets/modules/4.png new file mode 100644 index 000000000..fb85d18ce Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/4.png differ diff --git a/login_user_details_save/static/description/assets/modules/5.png b/login_user_details_save/static/description/assets/modules/5.png new file mode 100644 index 000000000..ad19a63ef Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/5.png differ diff --git a/login_user_details_save/static/description/assets/modules/6.png b/login_user_details_save/static/description/assets/modules/6.png new file mode 100644 index 000000000..b9f107256 Binary files /dev/null and b/login_user_details_save/static/description/assets/modules/6.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/1.png b/login_user_details_save/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..9043b82e2 Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/1.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/2.png b/login_user_details_save/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..355c44e21 Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/2.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/3.png b/login_user_details_save/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..51be60593 Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/3.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/4.png b/login_user_details_save/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..60ddfeb85 Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/4.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/5.png b/login_user_details_save/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..18277f9d7 Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/5.png differ diff --git a/login_user_details_save/static/description/assets/screenshots/hero.gif b/login_user_details_save/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..0a3785185 Binary files /dev/null and b/login_user_details_save/static/description/assets/screenshots/hero.gif differ diff --git a/login_user_details_save/static/description/banner.png b/login_user_details_save/static/description/banner.png new file mode 100644 index 000000000..8c145108d Binary files /dev/null and b/login_user_details_save/static/description/banner.png 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..06e0bdadf 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..5c01aca00 --- /dev/null +++ b/login_user_details_save/static/description/index.html @@ -0,0 +1,635 @@ +
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+ +
+
+
+

+ Save User's Login Info

+

+ 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. +

+ +
+
+ + +
+
+

+ Overview +

+
+ +
+

+ This app allows us to save our login info. +

+
+

+
+
+
+

+ Features +

+
+
+
+ +
+
+

+ 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 and when we try to login next time we can + see our name and once we click on that our login username + will be automatically filled. + +
+
+
+
+ +
+
+

+ We can remove this saved login details.

+ If we want to remove our saved details, + next time when we log out, we can uncheck the save details + checkbox.This will remove our saved details +
+
+
+
+
+

+ Screenshots +

+
+
+

+ 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.

+ + +
+
+ +
+
+

Suggested Products

+
+ +
+
+ + + +
+
+
+

Our Services

+
+
+
+
+ +
+
+ Odoo + Customization
+
+
+
+ +
+
+ Odoo + Implementation
+
+
+
+ +
+
+ Odoo + Support
+
+
+
+ +
+
+ Hire + Odoo + Developer
+
+
+
+ +
+
+ Odoo + Integration
+
+
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+
+ + + +
+
+
+

Our Industries

+
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

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

Need Help?

+
+
+
+ + +
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
\ No newline at end of file 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..6f1896787 --- /dev/null +++ b/login_user_details_save/static/src/js/logout_replace.js @@ -0,0 +1,36 @@ +odoo.define('login_user_details_save.login', function (require) { + "use strict"; + + const core = require('web.core'); + const { registry } = require('@web/core/registry'); + const { browser } = require('@web/core/browser/browser'); + // Ensure the correct registry categories are used + const serviceRegistry = registry.category("services"); + const userMenuRegistry = registry.category("user_menuitems"); + // Define the service to remove the existing logout menu item + const removeLogoutService = { + start() { + // Remove the existing log out menu item + registry.category("user_menuitems").remove('log_out'); + }, + }; + // Add the service to the registry + serviceRegistry.add("remove_log_out", removeLogoutService); + // Define the new log out menu item + function logOutItemNew(env) { + const route = "/web/session/logout_popup"; + return { + type: "item", + id: "logout_new", + class: "btn btn-link", + description: env._t("Log out"), + href: `${browser.location.origin}${route}`, + callback: () => { + browser.location.href = route; + }, + sequence: 70, + }; + } + // Add the new log out menu item to the registry + registry.category("user_menuitems").add("logout_new", 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..1842200d3 --- /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..eada98715 --- /dev/null +++ b/login_user_details_save/views/web_templates.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + +