Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UserDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UserDto.java	(revision cde148577250f78444c556d55e9d413e9f369cfc)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UserDto.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -4,5 +4,4 @@
 import lombok.Data;
 import lombok.NoArgsConstructor;
-import mk.ukim.finki.db.distributorapp.model.enumerations.Role;
 
 import java.time.LocalDateTime;
@@ -21,5 +20,5 @@
     private String cityName;
     private String regionName;
-    private Role role;
+    private String role;
     private String rtoken;
     private LocalDateTime rtoken_exp;
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UsersLoadingDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UsersLoadingDto.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UsersLoadingDto.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -0,0 +1,20 @@
+package mk.ukim.finki.db.distributorapp.model.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class UsersLoadingDto {
+    Long userId;
+    String userName;
+    String userSurname;
+    String userPassword;
+    String userEmail;
+    String userMobile;
+    String userSalt;
+    Boolean userActive;
+    String userImage;
+    String userRole;
+    String clazz_;
+}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Users.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Users.java	(revision cde148577250f78444c556d55e9d413e9f369cfc)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Users.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -7,4 +7,5 @@
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import mk.ukim.finki.db.distributorapp.model.dto.UsersLoadingDto;
 import mk.ukim.finki.db.distributorapp.model.enumerations.Role;
 import mk.ukim.finki.db.distributorapp.security.ConfirmationToken;
@@ -91,4 +92,19 @@
     private String clazz_;
 
+    public Users(UsersLoadingDto dto) {
+        this.userRole = Role.valueOf(dto.getUserRole());
+        this.userId = dto.getUserId();
+        this.userName = dto.getUserName();
+        this.userSurname = dto.getUserSurname();
+        this.userPassword = dto.getUserPassword();
+        this.userEmail = dto.getUserEmail();
+        this.userMobile = dto.getUserMobile();
+        this.userSalt = dto.getUserSalt();
+        this.userActive = dto.getUserActive();
+        this.userImage = dto.getUserImage();
+        this.confirmationToken=null;
+        this.city=null;
+    }
+
     @OneToOne(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
     private ConfirmationToken confirmationToken;
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/UsersRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/UsersRepository.java	(revision cde148577250f78444c556d55e9d413e9f369cfc)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/UsersRepository.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -2,4 +2,6 @@
 
 import lombok.NonNull;
+import mk.ukim.finki.db.distributorapp.model.dto.UserDto;
+import mk.ukim.finki.db.distributorapp.model.dto.UsersLoadingDto;
 import mk.ukim.finki.db.distributorapp.model.entities.Users;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -150,3 +152,47 @@
 
     Optional<Users> findUsersByUserEmailIgnoreCase(String email);
+
+    @Query(
+            nativeQuery = true,
+            value = """
+                    select user_id as userId,
+                           user_name as userName,
+                           user_surname as userSurname,
+                           user_pass as userPassword,
+                           user_email as userEmail,
+                           user_mobile as userMobile,
+                           user_salt as userSalt,
+                           user_active as userActive,
+                           user_image as userImage,
+                           user_role as userRole,
+                           clazz_
+                    from users
+                    where user_email = ?1
+                    """
+    )
+    UsersLoadingDto findUsersByUserEmailIgnoreCaseDto(String email);
+
+    @Query(
+            nativeQuery = true,
+            value = """
+                    select u.user_id as id,
+                           u.user_name as firstName,
+                           u.user_surname as lastName,
+                           u.user_email as email,
+                           u.user_mobile as phone,
+                           u.user_image as image,
+                           u.city_id as cityId,
+                           c.city_name as cityName,
+                           r.region_name as regionName,
+                           u.user_role as role,
+                           u.user_rtoken as rtoken,
+                           user_rtoken_exp as rtoken_exp,
+                           clazz_ as clazz_
+                    from users u
+                    join city c on u.city_id = c.city_id
+                    join region r on c.region_id = r.region_id
+                    where user_email = ?1
+                    """
+    )
+    UserDto findUserDtoByEmail(String userEmail);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/security/CustomUserDetailsService.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/security/CustomUserDetailsService.java	(revision cde148577250f78444c556d55e9d413e9f369cfc)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/security/CustomUserDetailsService.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -7,14 +7,9 @@
 import mk.ukim.finki.db.distributorapp.repository.ManagerRepository;
 import mk.ukim.finki.db.distributorapp.repository.UsersRepository;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.security.provisioning.InMemoryUserDetailsManager;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
-import java.util.Objects;
 
 @Service
@@ -26,7 +21,4 @@
     private final ManagerRepository managerRepository;
     private final DriverRepository driverRepository;
-    @Autowired
-    @Lazy
-    private InMemoryUserDetailsManager inMemoryUserDetailsManager;
 
     @Override
@@ -34,22 +26,17 @@
     public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
 
-        if ("superuser@admin.com".equalsIgnoreCase(email)) {
-            return inMemoryUserDetailsManager.loadUserByUsername(email);
-        }
+        return new Users(this.usersRepository.findUsersByUserEmailIgnoreCaseDto(email));
 
-        Users user = this.usersRepository.findUsersByUserEmailIgnoreCase(email)
-                .orElseThrow(() -> new UsernameNotFoundException(email));
-
-        if(Objects.equals(user.getClazz_(), "CUSTOMER")){
-            return this.customerRepository.findById(user.getUserId())
-                    .orElseThrow(() -> new UsernameNotFoundException(email));
-        }else if(Objects.equals(user.getClazz_(), "MANAGER")){
-            return this.managerRepository.findById(user.getUserId())
-                    .orElseThrow(() -> new UsernameNotFoundException(email));
-        } else if(Objects.equals(user.getClazz_(), "DRIVER")){
-            return this.driverRepository.findById(user.getUserId())
-                    .orElseThrow(() -> new UsernameNotFoundException(email));
-        }
-        return user;
+//        if(Objects.equals(user.getClazz_(), "CUSTOMER")){
+//            return this.customerRepository.findById(user.getUserId())
+//                    .orElseThrow(() -> new UsernameNotFoundException(email));
+//        }else if(Objects.equals(user.getClazz_(), "MANAGER")){
+//            return this.managerRepository.findById(user.getUserId())
+//                    .orElseThrow(() -> new UsernameNotFoundException(email));
+//        } else if(Objects.equals(user.getClazz_(), "DRIVER")){
+//            return this.driverRepository.findById(user.getUserId())
+//                    .orElseThrow(() -> new UsernameNotFoundException(email));
+//        }
+//        return user;
     }
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/UsersService.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/UsersService.java	(revision cde148577250f78444c556d55e9d413e9f369cfc)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/UsersService.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -14,3 +14,4 @@
     UserDto buildDto(Users user);
     Users findUserByResetToken(String token);
+    UserDto findUserDtoByEmail(String userEmail);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/UsersServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/UsersServiceImpl.java	(revision cde148577250f78444c556d55e9d413e9f369cfc)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/UsersServiceImpl.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -27,5 +27,5 @@
                 user.getCity().getCityName(),
                 user.getCity().getRegion().getRegionName(),
-                user.getUserRole(),
+                user.getUserRole().toString(),
                 user.getUserResetToken(),
                 user.getUserResetTokenExpiry(),
@@ -62,5 +62,5 @@
                 userDto.getImage(),
                 userDto.getCityId(),
-                userDto.getRole().name(),
+                userDto.getRole(),
                 userDto.getRtoken(),
                 userDto.getRtoken_exp(),
@@ -75,4 +75,9 @@
 
     @Override
+    public UserDto findUserDtoByEmail(String userEmail) {
+        return this.usersRepository.findUserDtoByEmail(userEmail);
+    }
+
+    @Override
     public Integer deleteUserById(Long id) {
         return 0;
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/web/DriverController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/DriverController.java	(revision cde148577250f78444c556d55e9d413e9f369cfc)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/web/DriverController.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -2,6 +2,6 @@
 
 import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.model.entities.Driver;
-import mk.ukim.finki.db.distributorapp.model.entities.Users;
+import mk.ukim.finki.db.distributorapp.model.dto.DriverDto;
+import mk.ukim.finki.db.distributorapp.model.dto.UserDto;
 import mk.ukim.finki.db.distributorapp.security.auth.AuthService;
 import mk.ukim.finki.db.distributorapp.service.CityService;
@@ -9,4 +9,6 @@
 import mk.ukim.finki.db.distributorapp.service.DriverService;
 import mk.ukim.finki.db.distributorapp.service.UsersService;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -33,8 +35,10 @@
     @GetMapping({"/dashboard","/"})
     public String dashboard(Model model) {
-        Users user = this.usersService.findUserByEmail(model.getAttribute("email").toString());
-        Driver driver = this.driverService.getDriverObjById(user.getUserId());
-        model.addAttribute("newDeliveries", deliveryService.getAllNewDeliveriesByDriver(driver));
-        model.addAttribute("doneDeliveries", deliveryService.getAllDeliveriesByDriver(driver));
+        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+        String userEmail = authentication.getName();
+        UserDto user = this.usersService.findUserDtoByEmail(userEmail);
+        DriverDto driver = this.driverService.findById(user.getId());
+//        model.addAttribute("newDeliveries", deliveryService.getAllNewDeliveriesByDriver(driver));
+//        model.addAttribute("doneDeliveries", deliveryService.getAllDeliveriesByDriver(driver));
         return "home/driver";
     }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/web/HomeController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/HomeController.java	(revision cde148577250f78444c556d55e9d413e9f369cfc)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/web/HomeController.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -1,6 +1,7 @@
 package mk.ukim.finki.db.distributorapp.web;
 
-import mk.ukim.finki.db.distributorapp.model.entities.Users;
-import mk.ukim.finki.db.distributorapp.service.*;
+import lombok.RequiredArgsConstructor;
+import mk.ukim.finki.db.distributorapp.model.dto.UserDto;
+import mk.ukim.finki.db.distributorapp.service.UsersService;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
@@ -11,20 +12,10 @@
 
 @Controller
+@RequiredArgsConstructor
 @RequestMapping({"/","/home"})
 public class HomeController {
 
-    private final DeliveryService deliveryService;
-    private final OrdersService ordersService;
-    private final VehicleService vehicleService;
-    private final WarehouseService warehouseService;
     private final UsersService usersService;
 
-    public HomeController(DeliveryService deliveryService, OrdersService ordersService, VehicleService vehicleService, WarehouseService warehouseService, UsersService usersService) {
-        this.deliveryService = deliveryService;
-        this.ordersService = ordersService;
-        this.vehicleService = vehicleService;
-        this.warehouseService = warehouseService;
-        this.usersService = usersService;
-    }
 
     @GetMapping
@@ -41,16 +32,14 @@
             return "redirect:/admin/dashboard";
         }
-        Users user = this.usersService.findUserByEmail(userEmail);
-        System.out.println("Authentication principal: " + authentication.getPrincipal().getClass().getName());
-        System.out.println("Authorities: " + authentication.getAuthorities());
+        UserDto user = this.usersService.findUserDtoByEmail(userEmail);
 
-        switch (user.getUserRole()) {
-            case ROLE_CUSTOMER -> {
+        switch (user.getRole()) {
+            case "ROLE_CUSTOMER" -> {
                 return "redirect:/customer/dashboard";
             }
-            case ROLE_DRIVER -> {
+            case "ROLE_DRIVER" -> {
                 return "redirect:/driver/dashboard";
             }
-            case ROLE_MANAGER -> {
+            case "ROLE_MANAGER" -> {
                 return "redirect:/manager/dashboard";
             }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/web/ManagerController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/ManagerController.java	(revision cde148577250f78444c556d55e9d413e9f369cfc)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/web/ManagerController.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -2,7 +2,8 @@
 
 import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.model.entities.Manager;
-import mk.ukim.finki.db.distributorapp.model.entities.Users;
+import mk.ukim.finki.db.distributorapp.model.dto.UserDto;
 import mk.ukim.finki.db.distributorapp.service.*;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -24,12 +25,13 @@
 
     @GetMapping({"/dashboard","/"})
-    public String dashboard(Model model) {
-        Users user = this.usersService.findUserByEmail(model.getAttribute("email").toString());
-        Manager manager = this.managerService.getManagerByIdObj(user.getUserId());
+    public String dashboard() {
+        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+        String userEmail = authentication.getName();
+        UserDto user = this.usersService.findUserDtoByEmail(userEmail);
 
-        model.addAttribute("currentInventory", warehouseService.getInventoryByManager(manager));
-        model.addAttribute("vehicleStatus", vehicleService.getVehiclesByManager(manager));
-        model.addAttribute("newOrders", ordersService.getNewOrdersByManager(manager));
-        model.addAttribute("currentDeliveries", deliveryService.getCurrentDeliveriesByManager(manager));
+//        model.addAttribute("currentInventory", warehouseService.getInventoryByManager(manager.getId()));
+//        model.addAttribute("vehicleStatus", vehicleService.getVehiclesByManager(manager.getId()));
+//        model.addAttribute("newOrders", ordersService.getNewOrdersByManager(manager.getId()));
+//        model.addAttribute("currentDeliveries", deliveryService.getCurrentDeliveriesByManager(manager.getId()));
         return "home/manager";
     }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/web/rest/RestUsersController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/rest/RestUsersController.java	(revision cde148577250f78444c556d55e9d413e9f369cfc)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/web/rest/RestUsersController.java	(revision c623baa5f39310c5b9da3fa4ac144b1f9aa2fec1)
@@ -35,5 +35,5 @@
                     user.getCity().getCityName(),
                     user.getCity().getRegion().getRegionName(),
-                    user.getUserRole(),
+                    user.getUserRole().toString(),
                     user.getUserResetToken(),
                     user.getUserResetTokenExpiry(),
