Files
ihrm/project/cbv/accessibility.py

40 lines
1016 B
Python
Raw Normal View History

2025-02-14 10:01:48 +05:30
"""
Accessibility
"""
from django.contrib.auth.context_processors import PermWrapper
from employee.models import Employee
from project.models import Project, Task
2025-02-14 10:08:50 +05:30
def task_crud_accessibility(
request, instance: object = None, user_perms: PermWrapper = [], *args, **kwargs
2025-02-14 10:01:48 +05:30
) -> bool:
"""
to access crud operations
"""
employee = request.user.employee_get
is_task_manager = employee in instance.task_managers.all()
is_project_manager = employee in instance.project.managers.all()
2025-02-14 10:08:50 +05:30
if (
request.user.has_perm("project.view_task")
or is_project_manager
or is_task_manager
):
2025-02-14 10:01:48 +05:30
return True
else:
return False
2025-02-14 10:08:50 +05:30
def project_manager_accessibility(
request, instance: object = None, user_perms: PermWrapper = [], *args, **kwargs
2025-02-14 10:01:48 +05:30
) -> bool:
"""
to access edit Project
"""
2025-02-14 10:08:50 +05:30
return (
request.user.employee_get in instance.managers.all()
or request.user.is_superuser
)