HEX
Server: nginx/1.18.0
System: Linux mail.dakarash.co.id 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User: www-data (33)
PHP: 8.1.2-1ubuntu2.23
Disabled: NONE
Upload Files
File: /home/django/apps/cargochains/sales/mixins.py
# sales/views/mixins.py
from django.contrib.auth.mixins import LoginRequiredMixin
from django.core.exceptions import PermissionDenied

def is_sales_user(user):
    if not user.is_authenticated:
        return False
    if user.is_superuser:
        return True
    # sesuaikan: cek group/permission apa pun yang kamu pakai
    return user.groups.filter(name__in=["sales", "admin"]).exists() or user.has_perm("sales.view_salesquotation")

class SalesAccessRequiredMixin(LoginRequiredMixin):
    login_url = "account:login"

    def dispatch(self, request, *args, **kwargs):
        if not is_sales_user(request.user):
            raise PermissionDenied("Anda tidak berhak mengakses halaman Sales.")
        return super().dispatch(request, *args, **kwargs)
class UserToFormKwargsMixin:
    def get_form_kwargs(self):
        kwargs = super().get_form_kwargs()
        kwargs["user"] = getattr(self, "request", None) and self.request.user
        return kwargs