Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/workerDTO/DisplayWorkerDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/workerDTO/DisplayWorkerDTO.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/workerDTO/DisplayWorkerDTO.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -0,0 +1,35 @@
+package mk.ukim.finki.it.reservengo.dto.workerDTO;
+
+import mk.ukim.finki.it.reservengo.model.domain.LocalWorker;
+import mk.ukim.finki.it.reservengo.model.enumerations.Position;
+import mk.ukim.finki.it.reservengo.model.enumerations.Role;
+
+import java.util.List;
+
+public record DisplayWorkerDTO(
+        Long id,
+        String firstName,
+        String lastName,
+        String email,
+        String phoneNumber,
+        Role role,
+        Position position
+) {
+    public static DisplayWorkerDTO fromWorker(LocalWorker worker) {
+        return new DisplayWorkerDTO(
+                worker.getId(),
+                worker.getFirstName(),
+                worker.getLastName(),
+                worker.getEmail(),
+                worker.getPhoneNumber(),
+                worker.getUserRole(),
+                worker.getPosition()
+        );
+    }
+
+    public static List<DisplayWorkerDTO> fromWorkers(List<LocalWorker> workers) {
+        return workers.stream()
+                .map(DisplayWorkerDTO::fromWorker)
+                .toList();
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/workerDTO/PositionDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/workerDTO/PositionDTO.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/workerDTO/PositionDTO.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -0,0 +1,8 @@
+package mk.ukim.finki.it.reservengo.dto.workerDTO;
+
+import mk.ukim.finki.it.reservengo.model.enumerations.Position;
+
+public record PositionDTO(
+        Position position
+) {
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/User.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/User.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/User.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -46,4 +46,7 @@
     private String profilePhotoUrl;
 
+    @Column(nullable = false)
+    private boolean enabled;
+
     public User(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole) {
         this.firstName = firstName;
@@ -53,4 +56,5 @@
         this.phoneNumber = phoneNumber;
         this.userRole = userRole;
+        this.setEnabled(true);
     }
 
@@ -87,5 +91,5 @@
     @Override
     public boolean isEnabled() {
-        return true;
+        return this.enabled;
     }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/WorkerAlreadyAssignedException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/WorkerAlreadyAssignedException.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/WorkerAlreadyAssignedException.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class WorkerAlreadyAssignedException extends RuntimeException {
+    public WorkerAlreadyAssignedException(Long workerId, Long localId) {
+        super("Worker with id: " + workerId + " is already assigned to local with id: " + localId + ".");
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/WorkerIdNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/WorkerIdNotFoundException.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/WorkerIdNotFoundException.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class WorkerIdNotFoundException extends RuntimeException {
+    public WorkerIdNotFoundException(Long id) {
+        super("Worker with id: " + id + " not found.");
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/WorkerNotAssignedException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/WorkerNotAssignedException.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/WorkerNotAssignedException.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class WorkerNotAssignedException extends RuntimeException {
+    public WorkerNotAssignedException(Long id) {
+        super("Worker with id: " + id + " is not assigned to any local.");
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/LocalWorkerRepository.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/LocalWorkerRepository.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/LocalWorkerRepository.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -5,4 +5,5 @@
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
 import java.util.Optional;
 
@@ -10,3 +11,5 @@
 public interface LocalWorkerRepository extends JpaRepository<LocalWorker, Long> {
     Optional<LocalWorker> findByEmail(String email);
+
+    List<LocalWorker> findByLocal_Id(Long localId);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AdminServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AdminServiceImpl.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AdminServiceImpl.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -71,5 +71,5 @@
         LocalManager manager = localManagerService.findManagerById(managerId);
         if (manager.getLocal() == null) {
-            throw new ManagerNotAssignedException(manager.getId());
+            throw new ManagerNotAssignedException(managerId);
         }
         localManagerService.updateLocalAssignment(manager, null, null);
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -5,17 +5,14 @@
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosResultDTO;
+import mk.ukim.finki.it.reservengo.dto.workerDTO.PositionDTO;
 import mk.ukim.finki.it.reservengo.model.domain.Event;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.domain.LocalManager;
+import mk.ukim.finki.it.reservengo.model.domain.LocalWorker;
 import mk.ukim.finki.it.reservengo.model.enumerations.Position;
-import mk.ukim.finki.it.reservengo.model.exceptions.EventNotInLocalException;
-import mk.ukim.finki.it.reservengo.model.exceptions.LocalManagerIdNotFoundException;
-import mk.ukim.finki.it.reservengo.model.exceptions.ManagerNotAssignedException;
-import mk.ukim.finki.it.reservengo.model.exceptions.UserEmailAlreadyExistsException;
+import mk.ukim.finki.it.reservengo.model.exceptions.*;
 import mk.ukim.finki.it.reservengo.repository.LocalManagerRepository;
-import mk.ukim.finki.it.reservengo.service.intf.EventService;
-import mk.ukim.finki.it.reservengo.service.intf.LocalManagerService;
-import mk.ukim.finki.it.reservengo.service.intf.LocalService;
-import mk.ukim.finki.it.reservengo.service.intf.UserService;
+import mk.ukim.finki.it.reservengo.service.intf.*;
+import org.springframework.security.access.AccessDeniedException;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
@@ -31,10 +28,12 @@
     private final UserService userService;
     private final EventService eventService;
-
-    public LocalManagerServiceImpl(LocalService localService, LocalManagerRepository localManagerRepository, UserService userService, EventService eventService) {
+    private final LocalWorkerService workerService;
+
+    public LocalManagerServiceImpl(LocalService localService, LocalManagerRepository localManagerRepository, UserService userService, EventService eventService, LocalWorkerService workerService) {
         this.localService = localService;
         this.localManagerRepository = localManagerRepository;
         this.userService = userService;
         this.eventService = eventService;
+        this.workerService = workerService;
     }
 
@@ -154,3 +153,48 @@
         return localService.editEvent(local, event, createEventDTO);
     }
+
+    @Override
+    public List<LocalWorker> findWorkersByLocal(Local local) {
+        return workerService.findAllByLocalId(local.getId());
+    }
+
+    @Override
+    public List<LocalWorker> findUnassignedWorkers() {
+        return workerService.findAllUnassigned();
+    }
+
+    @Override
+    public void assignWorkerToLocal(Local local, Long workerId) {
+        LocalWorker worker = workerService.findWorkerById(workerId);
+        if (worker.getLocal() != null) {
+            throw new WorkerAlreadyAssignedException(worker.getId(), worker.getLocal().getId());
+        }
+        workerService.updateLocalAssignment(worker, local);
+    }
+
+    @Override
+    public void removeWorkerFromLocal(Long managerId, Long workerId) {
+        LocalWorker worker = workerService.findWorkerById(workerId);
+        if (worker.getLocal() == null) {
+            throw new WorkerNotAssignedException(workerId);
+        }
+        LocalManager manager = findManagerById(managerId);
+        if (!worker.getLocal().getId().equals(manager.getLocal().getId())) {
+            throw new AccessDeniedException("You are not allowed to remove a worker that is not assigned to your local!");
+        }
+        workerService.updateLocalAssignment(worker, null);
+    }
+
+    @Override
+    public void changePosition(Long managerId, Long workerId, PositionDTO positionDTO) {
+        LocalWorker worker = workerService.findWorkerById(workerId);
+        if (worker.getLocal() == null) {
+            throw new WorkerNotAssignedException(workerId);
+        }
+        LocalManager manager = findManagerById(managerId);
+        if (!worker.getLocal().getId().equals(manager.getLocal().getId())) {
+            throw new AccessDeniedException("You are not allowed to change the position of a worker that is not assigned to your local!");
+        }
+        workerService.changePosition(worker, positionDTO.position());
+    }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalWorkerServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalWorkerServiceImpl.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalWorkerServiceImpl.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -1,10 +1,16 @@
 package mk.ukim.finki.it.reservengo.service.impl;
 
+import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.domain.LocalWorker;
+import mk.ukim.finki.it.reservengo.model.enumerations.Position;
 import mk.ukim.finki.it.reservengo.model.exceptions.UserEmailAlreadyExistsException;
+import mk.ukim.finki.it.reservengo.model.exceptions.WorkerIdNotFoundException;
 import mk.ukim.finki.it.reservengo.repository.LocalWorkerRepository;
 import mk.ukim.finki.it.reservengo.service.intf.LocalWorkerService;
 import mk.ukim.finki.it.reservengo.service.intf.UserService;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
@@ -25,3 +31,37 @@
         localWorkerRepository.save(localWorker);
     }
+
+    @Override
+    public LocalWorker findWorkerById(Long id) {
+        return localWorkerRepository.findById(id).orElseThrow(() -> new WorkerIdNotFoundException(id));
+    }
+
+    @Override
+    public void changePosition(LocalWorker worker, Position position) {
+        worker.setPosition(position);
+        localWorkerRepository.save(worker);
+    }
+
+    @Override
+    public List<LocalWorker> findAllByLocalId(Long id) {
+        return localWorkerRepository.findByLocal_Id(id);
+    }
+
+    @Override
+    public List<LocalWorker> findAllUnassigned() {
+        return localWorkerRepository.findAll().stream()
+                .filter(worker -> worker.getLocal() == null)
+                .filter(worker -> worker.getPosition() == null)
+                .collect(Collectors.toList());
+    }
+
+    @Override
+    public void updateLocalAssignment(LocalWorker worker, Local local) {
+        worker.setLocal(local);
+        if (local == null) {
+            worker.setPosition(null);
+        }
+
+        localWorkerRepository.save(worker);
+    }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/UserServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/UserServiceImpl.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/UserServiceImpl.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -107,4 +107,11 @@
 
     @Override
+    public void disableProfile(Long id) {
+        User user = userRepository.findById(id).orElseThrow(() -> new UserIdNotFoundException(id));
+        user.setEnabled(false);
+        userRepository.save(user);
+    }
+
+    @Override
     public User editUser(Long userId, EditUserProfileDTO editUserProfileDTO) {
         User user = userRepository.findById(userId).orElseThrow(() -> new UserIdNotFoundException(userId));
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalManagerService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalManagerService.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalManagerService.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -5,7 +5,9 @@
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosResultDTO;
+import mk.ukim.finki.it.reservengo.dto.workerDTO.PositionDTO;
 import mk.ukim.finki.it.reservengo.model.domain.Event;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.domain.LocalManager;
+import mk.ukim.finki.it.reservengo.model.domain.LocalWorker;
 import mk.ukim.finki.it.reservengo.model.enumerations.Position;
 import org.springframework.web.multipart.MultipartFile;
@@ -43,3 +45,13 @@
 
     Event editEvent(Long managerId, Long eventId, CreateEventDTO createEventDTO);
+
+    List<LocalWorker> findWorkersByLocal(Local local);
+
+    List<LocalWorker> findUnassignedWorkers();
+
+    void assignWorkerToLocal(Local local, Long workerId);
+
+    void removeWorkerFromLocal(Long managerId, Long workerId);
+
+    void changePosition(Long managerId, Long workerId, PositionDTO positionDTO);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalWorkerService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalWorkerService.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalWorkerService.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -1,7 +1,21 @@
 package mk.ukim.finki.it.reservengo.service.intf;
 
+import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.domain.LocalWorker;
+import mk.ukim.finki.it.reservengo.model.enumerations.Position;
+
+import java.util.List;
 
 public interface LocalWorkerService {
     void save(LocalWorker localWorker);
+
+    LocalWorker findWorkerById(Long id);
+
+    void changePosition(LocalWorker worker, Position position);
+
+    List<LocalWorker> findAllByLocalId(Long id);
+
+    List<LocalWorker> findAllUnassigned();
+
+    void updateLocalAssignment(LocalWorker worker, Local local);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/UserService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/UserService.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/UserService.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -21,3 +21,5 @@
 
     void deleteProfilePhoto(Long userId);
+
+    void disableProfile(Long id);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/advice/GlobalExceptionHandler.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/advice/GlobalExceptionHandler.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/advice/GlobalExceptionHandler.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -4,4 +4,5 @@
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.core.AuthenticationException;
@@ -123,4 +124,24 @@
         return ResponseEntity.status(HttpStatus.CONFLICT).body(ex.getMessage());
     }
+
+    @ExceptionHandler(WorkerIdNotFoundException.class)
+    public ResponseEntity<String> handleWorkerIdNotFound(WorkerIdNotFoundException ex) {
+        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
+    }
+
+    @ExceptionHandler(WorkerNotAssignedException.class)
+    public ResponseEntity<String> handleWorkerNotAssigned(WorkerNotAssignedException ex) {
+        return ResponseEntity.status(HttpStatus.CONFLICT).body(ex.getMessage());
+    }
+
+    @ExceptionHandler(AccessDeniedException.class)
+    public ResponseEntity<String> handleAccessDenied(AccessDeniedException ex) {
+        return ResponseEntity.status(HttpStatus.FORBIDDEN).body(ex.getMessage());
+    }
+
+    @ExceptionHandler(WorkerAlreadyAssignedException.class)
+    public ResponseEntity<String> handleWorkerAlreadyAssigned(WorkerAlreadyAssignedException ex) {
+        return ResponseEntity.status(HttpStatus.CONFLICT).body(ex.getMessage());
+    }
 }
 
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalManagerController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalManagerController.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalManagerController.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -7,4 +7,7 @@
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosResultDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DisplayLocalDetailsDTO;
+import mk.ukim.finki.it.reservengo.dto.workerDTO.DisplayWorkerDTO;
+import mk.ukim.finki.it.reservengo.dto.workerDTO.PositionDTO;
+import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.domain.User;
 import mk.ukim.finki.it.reservengo.service.intf.LocalManagerService;
@@ -15,4 +18,6 @@
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
 
 @RestController
@@ -80,3 +85,35 @@
         return new ResponseEntity<>(dto, HttpStatus.OK);
     }
+
+    @GetMapping("/local-workers")
+    public ResponseEntity<List<DisplayWorkerDTO>> getWorkersForLocal(@AuthenticationPrincipal User user) {
+        Local local = localManagerService.findLocalByManagerId(user.getId());
+        List<DisplayWorkerDTO> workers = DisplayWorkerDTO.fromWorkers(localManagerService.findWorkersByLocal(local));
+        return new ResponseEntity<>(workers, HttpStatus.OK);
+    }
+
+    @GetMapping("/workers")
+    public ResponseEntity<List<DisplayWorkerDTO>> getWorkers() {
+        List<DisplayWorkerDTO> workers = DisplayWorkerDTO.fromWorkers(localManagerService.findUnassignedWorkers());
+        return new ResponseEntity<>(workers, HttpStatus.OK);
+    }
+
+    @PostMapping("/assign/{workerId}")
+    public ResponseEntity<Void> assignWorkerToLocal(@AuthenticationPrincipal User user, @PathVariable Long workerId) {
+        Local local = localManagerService.findLocalByManagerId(user.getId());
+        localManagerService.assignWorkerToLocal(local, workerId);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+    @DeleteMapping("/remove/{workerId}")
+    public ResponseEntity<Void> removeWorkerFromLocal(@AuthenticationPrincipal User user, @PathVariable Long workerId) {
+        localManagerService.removeWorkerFromLocal(user.getId(), workerId);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+    @PutMapping("/change-position/{workerId}")
+    public ResponseEntity<Void> changeWorkerPosition(@AuthenticationPrincipal User user, @PathVariable Long workerId, @RequestBody PositionDTO positionDTO) {
+        localManagerService.changePosition(user.getId(), workerId, positionDTO);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/UserController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/UserController.java	(revision 25349f4e9d8ef8214ea7ac8c050961fb195abda9)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/UserController.java	(revision ef41689e866fa7f9ac5b235ab5620f05d907c526)
@@ -57,3 +57,9 @@
         return new ResponseEntity<>(HttpStatus.OK);
     }
+
+    @DeleteMapping("/disable")
+    public ResponseEntity<Void> disableUser(@AuthenticationPrincipal User user) {
+        userService.disableProfile(user.getId());
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
 }
