Index: src/main/java/edu/gjoko/schedlr/services/BusinessService.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/services/BusinessService.java	(revision 905079022f7186a4860b626d48726296b486025f)
+++ src/main/java/edu/gjoko/schedlr/services/BusinessService.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
@@ -3,13 +3,14 @@
 import edu.gjoko.schedlr.entity.Business;
 import edu.gjoko.schedlr.entity.ServiceType;
+import edu.gjoko.schedlr.entity.Stakeholder;
 import edu.gjoko.schedlr.entity.StakeholderType;
 import edu.gjoko.schedlr.repositories.BusinessRepository;
 import edu.gjoko.schedlr.repositories.ServiceTypeRepository;
 import lombok.AllArgsConstructor;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
 
-import static edu.gjoko.schedlr.entity.BusinessStatus.ACTIVE;
 import static edu.gjoko.schedlr.entity.BusinessStatus.NEW;
 
@@ -20,8 +21,10 @@
     private final BusinessRepository businessRepository;
     private final ServiceTypeRepository serviceTypeRepository;
+    private BCryptPasswordEncoder bCryptPasswordEncoder;
 
     public void saveBusiness(Business business) {
         saveNewServiceTypes(business);
         business.getOwner().setStakeholderType(StakeholderType.BUSINESS_OWNER);
+        business.getOwner().setPassword(bCryptPasswordEncoder.encode(business.getOwner().getPassword()));
         business.setBusinessStatus(NEW);
         businessRepository.save(business);
@@ -52,3 +55,8 @@
     }
 
+    public Business findByOwner(Long ownerId) {
+        var owner = new Stakeholder();
+        owner.setId(ownerId);
+        return businessRepository.findBusinessByOwner(owner);
+    }
 }
Index: src/main/java/edu/gjoko/schedlr/services/PostgresUserDetailsService.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/services/PostgresUserDetailsService.java	(revision 905079022f7186a4860b626d48726296b486025f)
+++ src/main/java/edu/gjoko/schedlr/services/PostgresUserDetailsService.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
@@ -1,6 +1,12 @@
 package edu.gjoko.schedlr.services;
 
+import edu.gjoko.schedlr.entity.Business;
+import edu.gjoko.schedlr.entity.BusinessStatus;
 import edu.gjoko.schedlr.entity.Stakeholder;
+import edu.gjoko.schedlr.entity.StakeholderType;
+import edu.gjoko.schedlr.repositories.BusinessRepository;
 import edu.gjoko.schedlr.repositories.StakeholderRepository;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -16,4 +22,5 @@
 
 @Service
+@RequiredArgsConstructor
 public class PostgresUserDetailsService implements UserDetailsService {
 
@@ -21,9 +28,5 @@
     private final BCryptPasswordEncoder bCryptPasswordEncoder;
 
-    public PostgresUserDetailsService(StakeholderRepository stakeholderRepository,
-                                      BCryptPasswordEncoder bCryptPasswordEncoder) {
-        this.stakeholderRepository = stakeholderRepository;
-        this.bCryptPasswordEncoder = bCryptPasswordEncoder;
-    }
+    private final BusinessRepository businessRepository;
 
     @Override
@@ -33,7 +36,19 @@
             throw new UsernameNotFoundException("Non existing user");
         }
+
+        if(user.getStakeholderType() == StakeholderType.BUSINESS_OWNER) {
+            Business business = businessRepository.findBusinessByOwner(user);
+            if (business.getBusinessStatus() != BusinessStatus.ACTIVE) {
+                throw new SecurityException("User not approved by admin");
+            }
+        }
         Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
         grantedAuthorities.add(new SimpleGrantedAuthority(user.getStakeholderType().name()));
+
         return new User(user.getUsername(), user.getPassword(), grantedAuthorities);
     }
+
+    public Long loadStakeholderId(String username) {
+        return stakeholderRepository.findStakeholderByUsername(username).getId();
+    }
 }
