diff --git a/project_task_access/README.rst b/project_task_access/README.rst new file mode 100644 index 000000000..eaf2cc5f0 --- /dev/null +++ b/project_task_access/README.rst @@ -0,0 +1,49 @@ +.. 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 + +Users Restriction For Project And Task +====================================== +This module is designed to specify and control which individuals or roles within an organization have permission to view or interact with project and task records. + +configuration +============= +Nothing to configure. + +License +======= +General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: (V17) Aysha Shalin, (V16) Afra MP, (V15) Nandakishore M +* 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 https://www.cybrosys.com + +image:: https://cybrosys.com/images/logo.png + +Further information +=================== +HTML Description: ``__ diff --git a/project_task_access/__init__.py b/project_task_access/__init__.py new file mode 100644 index 000000000..30449fde0 --- /dev/null +++ b/project_task_access/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Afra MP () +# +# 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 models diff --git a/project_task_access/__manifest__.py b/project_task_access/__manifest__.py new file mode 100644 index 000000000..71d25c706 --- /dev/null +++ b/project_task_access/__manifest__.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Afra MP () +# +# 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": "Users Restriction For Project And Task", + "version": "16.0.1.0.0", + "category": "Project", + "summary": "Users Restriction For Project And Task restricts and access " + "the users to the project and task records.", + "description": """The 'Users Restriction For Project And Task' is a system + designed to specify and control which individuals or roles within an + organization have permission to view or interact with project and task + records. It ensures that only authorized users can access and manage + sensitive project and task-related information, enhancing security and + privacy within the organization's data management processes""", + "author": "Cybrosys Techno Solutions", + "company": "Cybrosys Techno Solutions", + "maintainer": "Cybrosys Techno Solutions", + "website": "https://www.cybrosys.com", + "depends": ["project"], + "data": [ + "security/project_task_security.xml", + "views/project_project_views.xml", + "views/project_task_views.xml", + ], + "images": ["static/description/banner.png"], + "license": "LGPL-3", + "installable": True, + "auto_install": False, + "application": False, +} diff --git a/project_task_access/doc/RELEASE_NOTES.md b/project_task_access/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..1fa4c9dad --- /dev/null +++ b/project_task_access/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 04.06.2024 +#### Version 16.0.1.0.0 +##### ADD + +- Initial commit for Users Restriction For Project And Task diff --git a/project_task_access/models/__init__.py b/project_task_access/models/__init__.py new file mode 100644 index 000000000..97cbc6760 --- /dev/null +++ b/project_task_access/models/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Afra MP (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 project_project +from . import project_task diff --git a/project_task_access/models/project_project.py b/project_task_access/models/project_project.py new file mode 100644 index 000000000..6aec06d10 --- /dev/null +++ b/project_task_access/models/project_project.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Afra MP (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 fields, models + + +class ProjectProject(models.Model): + """ To customise the access for the project and tasks """ + _inherit = "project.project" + + project_access_user_ids = fields.Many2many('res.users', + string='Access Limited Users', + help="The users who has " + "access for this record") + user_admin_check = fields.Boolean(string='sale_line_id_check', + compute='_compute_user_admin_check', + help="To check if the user is an Internal" + " user or not") + + def _compute_user_admin_check(self): + """ Determines if the current user is an admin to allow the + 'task_access_user_ids' field to be editable only by 'user_admin'.""" + for rec in self: + if rec.env.user.id == rec.env.ref('base.user_admin').id: + rec.user_admin_check = True + else: + rec.user_admin_check = False diff --git a/project_task_access/models/project_task.py b/project_task_access/models/project_task.py new file mode 100644 index 000000000..d562dd8cc --- /dev/null +++ b/project_task_access/models/project_task.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Afra MP (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 fields, models + + +class ProjectTask(models.Model): + """ The Class ProjectTask for the model project_task which is to + customise the access for the records. """ + _inherit = 'project.task' + + task_access_user_ids = fields.Many2many('res.users', + string='Access Limited Users', + help="The users who has access " + "for this record") + user_admin_check = fields.Boolean(string='sale_line_id_check', + compute='_compute_user_admin_check', + help="The Compute field to check if " + "the user is an Internal user or not") + + def _compute_user_admin_check(self): + """The function computes a boolean field to check if the current + user is the admin for the purpose of making the + 'task_access_user_ids' field editable only for 'user_admin'""" + for rec in self: + if rec.env.user.id == rec.env.ref('base.user_admin').id: + rec.user_admin_check = True + else: + rec.user_admin_check = False diff --git a/project_task_access/security/project_task_security.xml b/project_task_access/security/project_task_security.xml new file mode 100644 index 000000000..3c62a3d37 --- /dev/null +++ b/project_task_access/security/project_task_security.xml @@ -0,0 +1,82 @@ + + + + + View Limited Projects and Tasks + + + + + Project Task Visible Users + + ['|', ('task_access_user_ids', 'in', user.id), ('task_access_user_ids', '=', False)] + + + + + + + + + + Project Project Visible Users + + ['|', ('project_access_user_ids', 'in', user.id), ('project_access_user_ids', '=', False)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Project/Task: employees: follow required for follower-only projects + + [] + + + + Project/Task: project manager: see all + + [(1, '=', 1)] + + + + Project: See private tasks + + [] + + + + Project: employees: following required for follower-only projects + + [] + + + diff --git a/project_task_access/static/description/assets/icons/check.png b/project_task_access/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/project_task_access/static/description/assets/icons/check.png differ diff --git a/project_task_access/static/description/assets/icons/chevron.png b/project_task_access/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/project_task_access/static/description/assets/icons/chevron.png differ diff --git a/project_task_access/static/description/assets/icons/cogs.png b/project_task_access/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/project_task_access/static/description/assets/icons/cogs.png differ diff --git a/project_task_access/static/description/assets/icons/consultation.png b/project_task_access/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/project_task_access/static/description/assets/icons/consultation.png differ diff --git a/project_task_access/static/description/assets/icons/ecom-black.png b/project_task_access/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/project_task_access/static/description/assets/icons/ecom-black.png differ diff --git a/project_task_access/static/description/assets/icons/education-black.png b/project_task_access/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/project_task_access/static/description/assets/icons/education-black.png differ diff --git a/project_task_access/static/description/assets/icons/hotel-black.png b/project_task_access/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/project_task_access/static/description/assets/icons/hotel-black.png differ diff --git a/project_task_access/static/description/assets/icons/license.png b/project_task_access/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/project_task_access/static/description/assets/icons/license.png differ diff --git a/project_task_access/static/description/assets/icons/lifebuoy.png b/project_task_access/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/project_task_access/static/description/assets/icons/lifebuoy.png differ diff --git a/project_task_access/static/description/assets/icons/logo.png b/project_task_access/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/project_task_access/static/description/assets/icons/logo.png differ diff --git a/project_task_access/static/description/assets/icons/manufacturing-black.png b/project_task_access/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/project_task_access/static/description/assets/icons/manufacturing-black.png differ diff --git a/project_task_access/static/description/assets/icons/pos-black.png b/project_task_access/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/project_task_access/static/description/assets/icons/pos-black.png differ diff --git a/project_task_access/static/description/assets/icons/puzzle.png b/project_task_access/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/project_task_access/static/description/assets/icons/puzzle.png differ diff --git a/project_task_access/static/description/assets/icons/restaurant-black.png b/project_task_access/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/project_task_access/static/description/assets/icons/restaurant-black.png differ diff --git a/project_task_access/static/description/assets/icons/service-black.png b/project_task_access/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/project_task_access/static/description/assets/icons/service-black.png differ diff --git a/project_task_access/static/description/assets/icons/trading-black.png b/project_task_access/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/project_task_access/static/description/assets/icons/trading-black.png differ diff --git a/project_task_access/static/description/assets/icons/training.png b/project_task_access/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/project_task_access/static/description/assets/icons/training.png differ diff --git a/project_task_access/static/description/assets/icons/update.png b/project_task_access/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/project_task_access/static/description/assets/icons/update.png differ diff --git a/project_task_access/static/description/assets/icons/user.png b/project_task_access/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/project_task_access/static/description/assets/icons/user.png differ diff --git a/project_task_access/static/description/assets/icons/wrench.png b/project_task_access/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/project_task_access/static/description/assets/icons/wrench.png differ diff --git a/project_task_access/static/description/assets/modules/1.png b/project_task_access/static/description/assets/modules/1.png new file mode 100644 index 000000000..3415917c2 Binary files /dev/null and b/project_task_access/static/description/assets/modules/1.png differ diff --git a/project_task_access/static/description/assets/modules/2.png b/project_task_access/static/description/assets/modules/2.png new file mode 100644 index 000000000..31ed46762 Binary files /dev/null and b/project_task_access/static/description/assets/modules/2.png differ diff --git a/project_task_access/static/description/assets/modules/3.png b/project_task_access/static/description/assets/modules/3.png new file mode 100644 index 000000000..25ed3e0b6 Binary files /dev/null and b/project_task_access/static/description/assets/modules/3.png differ diff --git a/project_task_access/static/description/assets/modules/4.png b/project_task_access/static/description/assets/modules/4.png new file mode 100644 index 000000000..359d3e4d6 Binary files /dev/null and b/project_task_access/static/description/assets/modules/4.png differ diff --git a/project_task_access/static/description/assets/modules/5.png b/project_task_access/static/description/assets/modules/5.png new file mode 100644 index 000000000..3add135c3 Binary files /dev/null and b/project_task_access/static/description/assets/modules/5.png differ diff --git a/project_task_access/static/description/assets/modules/6.png b/project_task_access/static/description/assets/modules/6.png new file mode 100644 index 000000000..be454ea44 Binary files /dev/null and b/project_task_access/static/description/assets/modules/6.png differ diff --git a/project_task_access/static/description/assets/screenshots/1.png b/project_task_access/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..96b89682d Binary files /dev/null and b/project_task_access/static/description/assets/screenshots/1.png differ diff --git a/project_task_access/static/description/assets/screenshots/2.png b/project_task_access/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..3ea149e12 Binary files /dev/null and b/project_task_access/static/description/assets/screenshots/2.png differ diff --git a/project_task_access/static/description/assets/screenshots/3.png b/project_task_access/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..0a27d81c3 Binary files /dev/null and b/project_task_access/static/description/assets/screenshots/3.png differ diff --git a/project_task_access/static/description/assets/screenshots/4.png b/project_task_access/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..fe0b42ce6 Binary files /dev/null and b/project_task_access/static/description/assets/screenshots/4.png differ diff --git a/project_task_access/static/description/assets/screenshots/hero.gif b/project_task_access/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..9f6104907 Binary files /dev/null and b/project_task_access/static/description/assets/screenshots/hero.gif differ diff --git a/project_task_access/static/description/banner.png b/project_task_access/static/description/banner.png new file mode 100644 index 000000000..7f7681b5b Binary files /dev/null and b/project_task_access/static/description/banner.png differ diff --git a/project_task_access/static/description/icon.png b/project_task_access/static/description/icon.png new file mode 100644 index 000000000..bca076a19 Binary files /dev/null and b/project_task_access/static/description/icon.png differ diff --git a/project_task_access/static/description/index.html b/project_task_access/static/description/index.html new file mode 100644 index 000000000..120abeffe --- /dev/null +++ b/project_task_access/static/description/index.html @@ -0,0 +1,587 @@ +
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+ +
+
+
+
+ +
+
+
+

+ Users Restriction For Project And Task

+

+ A Module For Restricting Projects and Tasks Record From Certain Users +

+ +
+
+ + + +
+
+

+ Overview +

+
+ +
+

+ The Odoo app "Users Restriction For Project And Task" offers the functionality to limit the access of internal users in the backend to specific projects and tasks. + + Administrators can define specific user groups or roles and assign them the necessary permissions to access these restricted projects and tasks. In case the field for allowed users is empty, all users in the system will have access to these records. + + This feature is particularly useful for companies that need to maintain confidentiality of certain projects or tasks and want to restrict access to a specific group of users. The app allows businesses to customize access levels for specific users, groups, and roles, and assign access rights based on project and task stages. + + Overall, the app provides businesses with the flexibility and control to manage their projects and tasks efficiently while ensuring that sensitive data is kept confidential and secure.

+
+ + +
+ + +
+
+

+ Features +

+
+ +
+
+ +
+
+

+ Access Control: Administrators can limit access to projects and tasks based on user groups or roles.

+
+
+ +
+
+ +
+
+

+ Customizable Access Levels: Users can be assigned different access levels based on their roles or departments, and access rights can be assigned based on project and task stages.

+
+
+ +
+
+ +
+
+

+ Enhanced Data Security: The app enhances data security by limiting access to confidential information and ensuring that sensitive data is only accessible to authorized users.

+
+
+ +
+
+ +
+
+

+ Streamlined Project Management: The app streamlines project management by providing separate workspaces for each group or team, making it easy to manage projects and tasks efficiently.

+
+
+ + +
+ +
+
+

+ Screenshots +

+
+
+

+ Enable the Checkbox 'View Limited Projects and Tasks'.

+

+ The restriction for project and tasks will be only available for the users have enabled this access. +

+ +
+ +
+

+ Select the Users in the Access Limited Users Field on Project Form.

+

+ If no user is selected in the field, all users will be able to access the projects. +

+ +
+ +
+

+ Select the Users in the Access Limited Users Field on Task.

+

+ If no user is selected in the field, all users will be able to access the tasks. +

+ +
+ +
+

+ Login as User who has given no Access, will be not Able to Access the Restricted Project and Tasks.

+ +
+ +
+ + +
+
+

Related Modules

+

Explore our related modules

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

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?

+
+
+
+ + +
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
diff --git a/project_task_access/views/project_project_views.xml b/project_task_access/views/project_project_views.xml new file mode 100644 index 000000000..3d9851706 --- /dev/null +++ b/project_task_access/views/project_project_views.xml @@ -0,0 +1,16 @@ + + + + + project.project.view.form.inherit.project.task.access + project.project + + + + + + + + + diff --git a/project_task_access/views/project_task_views.xml b/project_task_access/views/project_task_views.xml new file mode 100644 index 000000000..c97a2a457 --- /dev/null +++ b/project_task_access/views/project_task_views.xml @@ -0,0 +1,16 @@ + + + + + project.task.view.form.inherit.project.task.access + project.task + + + + + + + + +