prvi kod za live uporabu
Some checks failed
ERP CI Pipeline / test (push) Has been cancelled

This commit is contained in:
mariomitte
2026-07-09 21:21:17 +02:00
parent 857bb65d52
commit 5d39e048ba
239 changed files with 25151 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
# backend/core/users/views.py
from rest_framework import viewsets, permissions
from rest_framework.decorators import action
from rest_framework.response import Response
from django.contrib.auth import get_user_model
from .serializers import TeamMemberSerializer, UserSerializer
from .services import UserService
User = get_user_model()
class IsOwner(permissions.BasePermission):
"""Prilagođeni permission: Korisnik može uređivati samo sebe."""
def has_object_permission(self, request, view, obj):
return obj.id == request.user.id
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = [permissions.IsAuthenticated]
@action(detail=False, methods=['get'])
def me(self, request):
serializer = self.get_serializer(request.user)
return Response(serializer.data)
@action(detail=False, methods=['get'], url_path='team-members')
def team_members(self, request):
queryset = User.objects.filter(is_active=True, is_team_member=True).order_by('first_name', 'last_name', 'email')
serializer = TeamMemberSerializer(queryset, many=True)
return Response(serializer.data)
def perform_update(self, serializer):
# Delegiramo logiku servisu
UserService.update_user_profile(
user=self.request.user,
data=serializer.validated_data
)
def get_queryset(self):
# Korisnik vidi samo sebe (ili admini vide sve)
if self.request.user.is_staff:
return User.objects.all()
return User.objects.filter(id=self.request.user.id)