diff --git a/import_user_excel/README.rst b/import_user_excel/README.rst new file mode 100644 index 000000000..b096be4be --- /dev/null +++ b/import_user_excel/README.rst @@ -0,0 +1,37 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Import Users with Access Rights +======================= +Allows to import Users with User type and Access rights + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +Developer: Ammu @cybrosys, 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/import_user_excel/__init__.py b/import_user_excel/__init__.py new file mode 100644 index 000000000..c2af7a137 --- /dev/null +++ b/import_user_excel/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import wizards diff --git a/import_user_excel/__manifest__.py b/import_user_excel/__manifest__.py new file mode 100644 index 000000000..b14b36a0d --- /dev/null +++ b/import_user_excel/__manifest__.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +{ + 'name': 'Import User with Access rights', + 'summary': 'Import User details with Access rights by Excel', + 'version': '14.0.1.0.0', + 'category': 'Extra Tools', + 'description': """Allows to import User with User type and Access rights""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'license': 'AGPL-3', + 'depends': ['base'], + 'data': [ + 'security/ir.model.access.csv', + 'wizards/user_import_views.xml', + ], + 'images': ['static/description/banner.png'], + 'installable': True, + 'application': False, + 'auto_install': False, +} diff --git a/import_user_excel/doc/RELEASE_NOTES.md b/import_user_excel/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..f0e546849 --- /dev/null +++ b/import_user_excel/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 20.04.2023 +#### Version 14.0.1.0.0 +#### ADD +- Initial commit for Import User with Access rights diff --git a/import_user_excel/security/ir.model.access.csv b/import_user_excel/security/ir.model.access.csv new file mode 100644 index 000000000..122259c4c --- /dev/null +++ b/import_user_excel/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_product_import_user_import,user_import.user_import,model_user_import,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/import_user_excel/static/description/assets/icons/check.png b/import_user_excel/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/import_user_excel/static/description/assets/icons/check.png differ diff --git a/import_user_excel/static/description/assets/icons/chevron.png b/import_user_excel/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/import_user_excel/static/description/assets/icons/chevron.png differ diff --git a/import_user_excel/static/description/assets/icons/cogs.png b/import_user_excel/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/import_user_excel/static/description/assets/icons/cogs.png differ diff --git a/import_user_excel/static/description/assets/icons/consultation.png b/import_user_excel/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/import_user_excel/static/description/assets/icons/consultation.png differ diff --git a/import_user_excel/static/description/assets/icons/ecom-black.png b/import_user_excel/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/import_user_excel/static/description/assets/icons/ecom-black.png differ diff --git a/import_user_excel/static/description/assets/icons/education-black.png b/import_user_excel/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/import_user_excel/static/description/assets/icons/education-black.png differ diff --git a/import_user_excel/static/description/assets/icons/hotel-black.png b/import_user_excel/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/import_user_excel/static/description/assets/icons/hotel-black.png differ diff --git a/import_user_excel/static/description/assets/icons/license.png b/import_user_excel/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/import_user_excel/static/description/assets/icons/license.png differ diff --git a/import_user_excel/static/description/assets/icons/lifebuoy.png b/import_user_excel/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/import_user_excel/static/description/assets/icons/lifebuoy.png differ diff --git a/import_user_excel/static/description/assets/icons/manufacturing-black.png b/import_user_excel/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/import_user_excel/static/description/assets/icons/manufacturing-black.png differ diff --git a/import_user_excel/static/description/assets/icons/pos-black.png b/import_user_excel/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/import_user_excel/static/description/assets/icons/pos-black.png differ diff --git a/import_user_excel/static/description/assets/icons/puzzle.png b/import_user_excel/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/import_user_excel/static/description/assets/icons/puzzle.png differ diff --git a/import_user_excel/static/description/assets/icons/restaurant-black.png b/import_user_excel/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/import_user_excel/static/description/assets/icons/restaurant-black.png differ diff --git a/import_user_excel/static/description/assets/icons/service-black.png b/import_user_excel/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/import_user_excel/static/description/assets/icons/service-black.png differ diff --git a/import_user_excel/static/description/assets/icons/trading-black.png b/import_user_excel/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/import_user_excel/static/description/assets/icons/trading-black.png differ diff --git a/import_user_excel/static/description/assets/icons/training.png b/import_user_excel/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/import_user_excel/static/description/assets/icons/training.png differ diff --git a/import_user_excel/static/description/assets/icons/update.png b/import_user_excel/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/import_user_excel/static/description/assets/icons/update.png differ diff --git a/import_user_excel/static/description/assets/icons/user.png b/import_user_excel/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/import_user_excel/static/description/assets/icons/user.png differ diff --git a/import_user_excel/static/description/assets/icons/wrench.png b/import_user_excel/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/import_user_excel/static/description/assets/icons/wrench.png differ diff --git a/import_user_excel/static/description/assets/modules/approval_image.png b/import_user_excel/static/description/assets/modules/approval_image.png new file mode 100644 index 000000000..84fe94e80 Binary files /dev/null and b/import_user_excel/static/description/assets/modules/approval_image.png differ diff --git a/import_user_excel/static/description/assets/modules/dynamic_image.png b/import_user_excel/static/description/assets/modules/dynamic_image.png new file mode 100644 index 000000000..f55c47e0f Binary files /dev/null and b/import_user_excel/static/description/assets/modules/dynamic_image.png differ diff --git a/import_user_excel/static/description/assets/modules/list_view_image.png b/import_user_excel/static/description/assets/modules/list_view_image.png new file mode 100644 index 000000000..510d36ae9 Binary files /dev/null and b/import_user_excel/static/description/assets/modules/list_view_image.png differ diff --git a/import_user_excel/static/description/assets/modules/multiple_ref_image.png b/import_user_excel/static/description/assets/modules/multiple_ref_image.png new file mode 100644 index 000000000..3fe90e552 Binary files /dev/null and b/import_user_excel/static/description/assets/modules/multiple_ref_image.png differ diff --git a/import_user_excel/static/description/assets/modules/print_image.png b/import_user_excel/static/description/assets/modules/print_image.png new file mode 100644 index 000000000..b470725a1 Binary files /dev/null and b/import_user_excel/static/description/assets/modules/print_image.png differ diff --git a/import_user_excel/static/description/assets/modules/product_return_image.png b/import_user_excel/static/description/assets/modules/product_return_image.png new file mode 100644 index 000000000..3afc14722 Binary files /dev/null and b/import_user_excel/static/description/assets/modules/product_return_image.png differ diff --git a/import_user_excel/static/description/assets/screenshots/hero.gif b/import_user_excel/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..e398fa6ae Binary files /dev/null and b/import_user_excel/static/description/assets/screenshots/hero.gif differ diff --git a/import_user_excel/static/description/assets/screenshots/user1.png b/import_user_excel/static/description/assets/screenshots/user1.png new file mode 100644 index 000000000..e38e66608 Binary files /dev/null and b/import_user_excel/static/description/assets/screenshots/user1.png differ diff --git a/import_user_excel/static/description/assets/screenshots/user2.png b/import_user_excel/static/description/assets/screenshots/user2.png new file mode 100644 index 000000000..3c509f43d Binary files /dev/null and b/import_user_excel/static/description/assets/screenshots/user2.png differ diff --git a/import_user_excel/static/description/assets/screenshots/user3.png b/import_user_excel/static/description/assets/screenshots/user3.png new file mode 100644 index 000000000..dd1389f33 Binary files /dev/null and b/import_user_excel/static/description/assets/screenshots/user3.png differ diff --git a/import_user_excel/static/description/assets/screenshots/user4.png b/import_user_excel/static/description/assets/screenshots/user4.png new file mode 100644 index 000000000..da7163e35 Binary files /dev/null and b/import_user_excel/static/description/assets/screenshots/user4.png differ diff --git a/import_user_excel/static/description/assets/screenshots/user5.png b/import_user_excel/static/description/assets/screenshots/user5.png new file mode 100644 index 000000000..9aca95880 Binary files /dev/null and b/import_user_excel/static/description/assets/screenshots/user5.png differ diff --git a/import_user_excel/static/description/assets/screenshots/user6.png b/import_user_excel/static/description/assets/screenshots/user6.png new file mode 100644 index 000000000..8a7372b68 Binary files /dev/null and b/import_user_excel/static/description/assets/screenshots/user6.png differ diff --git a/import_user_excel/static/description/assets/screenshots/user7.png b/import_user_excel/static/description/assets/screenshots/user7.png new file mode 100644 index 000000000..7e7233d93 Binary files /dev/null and b/import_user_excel/static/description/assets/screenshots/user7.png differ diff --git a/import_user_excel/static/description/banner.png b/import_user_excel/static/description/banner.png new file mode 100644 index 000000000..eb5230c9f Binary files /dev/null and b/import_user_excel/static/description/banner.png differ diff --git a/import_user_excel/static/description/cybro_logo.png b/import_user_excel/static/description/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/import_user_excel/static/description/cybro_logo.png differ diff --git a/import_user_excel/static/description/icon.png b/import_user_excel/static/description/icon.png new file mode 100644 index 000000000..7508dd63d Binary files /dev/null and b/import_user_excel/static/description/icon.png differ diff --git a/import_user_excel/static/description/index.html b/import_user_excel/static/description/index.html new file mode 100644 index 000000000..149352195 --- /dev/null +++ b/import_user_excel/static/description/index.html @@ -0,0 +1,636 @@ +
+
+
+
+
+ Community +
+
+ Enterprise +
+ +
+
+
+
+ +
+
+
+

+ Import Users with Access rights

+

+ In default Odoo we need to configure users access rights after adding them into Odoo ERP system. This app allows to import users with User Name, Email ID, Language, User Type, Access Group, Access Technical Settings all these important fields. +

+ +
+
+ + + + +
+
+

+ Overview +

+
+ +
+

+ Allow to import users with User Name, Email ID, Language, User Type, Access Group, Access Technical Settings all these important fields. +

+ +
+
+ +
+
+

+ Features +

+
+ +
+
+ +
+
+

+ Import users with Excel file.

+
+
+ +
+
+ +
+
+

+ Import users with User Name, Email ID, Language, User Type, Access Group, Access Technical Settings all these important fields. +

+
+
+ +
+
+ +
+
+

+ Validation Error when trying to import incorrect access rights or user types. +

+
+
+ +
+ +
+
+

+ Screenshots +

+
+ +
+

+ Import Users Menu

+

+ You can see the import users menu in Settings.

+ +
+ +
+

+ Import User wizard

+

+ You can import the users from this wizard. You can upload the file here and click import button. +

+ +
+ + +
+

+ Excel Sheet

+

+ Name - Name of the User
+ Login - Email of the user
+ Language - Language of the user
+ Company - Company belongs
+ User Type - User Type
+ Access Group - Access group of the user
+ Access Technical Settings - Access Technical settings of the user +

+ +
+ +
+

+ Imported Users-List View

+

+ Below is the imported Users from the Excel.

+ +
+ +
+

+ Imported User

+

+ You can see the access rights are added for the customer that mentioned in the Excel.

+ +
+ +
+

+ Validation Errors

+

+ Validation errors when trying to import incorrect Access rights and Invalid User Types +

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

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/import_user_excel/wizards/__init__.py b/import_user_excel/wizards/__init__.py new file mode 100644 index 000000000..2dcc6875b --- /dev/null +++ b/import_user_excel/wizards/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import user_import diff --git a/import_user_excel/wizards/user_import.py b/import_user_excel/wizards/user_import.py new file mode 100644 index 000000000..8920fea74 --- /dev/null +++ b/import_user_excel/wizards/user_import.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +import binascii +import tempfile +import xlrd +from odoo import fields, models, _ +from odoo.exceptions import ValidationError + + +class UserImport(models.TransientModel): + """Import User with access right""" + _name = 'user.import' + _description = 'User Import' + + file = fields.Binary(string="Upload File", help='Upload the file') + + def import_file(self): + """ function to import user from xlsx file """ + if self: + try: + file_string = tempfile.NamedTemporaryFile(suffix=".xlsx") + file_string.write(binascii.a2b_base64(self.file)) + book = xlrd.open_workbook(file_string.name) + sheet = book.sheet_by_index(0) + except: + raise ValidationError(_("Please choose the correct file")) + + starting_line = True + for i in range(sheet.nrows): + if starting_line: + starting_line = False + else: + line = list(sheet.row_values(i)) + res_groups = self.env['res.groups'] + user_type = [line[4]] + invalid_language = [lang for lang in [line[2]] if + not self.env['res.lang'].search( + [('code', '=', lang), ('active', '=', True)])] + if invalid_language: + raise ValidationError(_("Language %s is not active") % ( + " ".join(invalid_language))) + invalid_company = [res for res in [line[3]] if + not self.env['res.company'].search( + [('name', '=', res)])] + if invalid_company: + raise ValidationError(_("Company %s not exists") % ( + " ".join(invalid_company))) + invalid_user = [rec for rec in user_type if + not res_groups.search( + [('full_name', '=', rec)])] + if invalid_user: + raise ValidationError(_("Invalid User Type %s") % ( + " ".join(invalid_user))) + if line[5]: + groups = line[5].split(",") + invalid_groups = [rec for rec in groups if + not res_groups.search( + [('full_name', '=', rec)])] + if invalid_groups: + raise ValidationError(_("Invalid groups %s") % ( + " ".join(invalid_groups))) + else: + groups = [] + access_right = res_groups.search( + [('full_name', 'in', groups)]).ids + tech_settings = line[6].split(',') + tech_settings += user_type + total_rights = res_groups.search( + [('name', '=', tech_settings)]).ids + group_ids = access_right + total_rights + if line[0]: + self.env['res.users'].create({ + 'name': line[0], + 'login': line[1], + 'lang': line[2], + 'company_id': self.env['res.company'].search( + [('name', '=', line[3])]).id if line[3] else '', + 'groups_id': group_ids, + }) + else: + raise ValidationError(_('Please Enter the User Name.')) diff --git a/import_user_excel/wizards/user_import_views.xml b/import_user_excel/wizards/user_import_views.xml new file mode 100644 index 000000000..fb151ff5b --- /dev/null +++ b/import_user_excel/wizards/user_import_views.xml @@ -0,0 +1,33 @@ + + + + + user.import.view.form + user.import + +
+ + + +
+
+
+
+
+ + + Import Users + user.import + ir.actions.act_window + form + + new + + + +