Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/impl/AdminServiceImpl.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/impl/AdminServiceImpl.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/impl/AdminServiceImpl.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -0,0 +1,38 @@
+package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.impl;
+
+import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDetailsDTO;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.Recruiter;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.mappers.RecruiterMapper;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.repositories.RecruiterRepository;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.AdminService;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.RecruiterService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class AdminServiceImpl implements AdminService {
+    private final RecruiterService recruiterService;
+    private final RecruiterRepository recruiterRepository;
+
+    @Override
+    public RecruiterDetailsDTO changeAccess(long recruiterId, boolean access) {
+        Recruiter recruiter = recruiterRepository.findById(recruiterId).orElse(null);
+        if (recruiter != null) {
+            recruiter.setHasAccess(access);
+            recruiterRepository.save(recruiter);
+            return RecruiterMapper.mapToRecruiterDetailsDTO(recruiter);
+        }
+        return null;
+
+    }
+
+    @Override
+    public List<RecruiterDetailsDTO> findAllRecruiters() {
+        List<Recruiter> recruiterList = recruiterRepository.findAll();
+        return recruiterList.stream().map(RecruiterMapper::mapToRecruiterDetailsDTO).toList();
+    }
+}
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/impl/AuthServiceImpl.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/impl/AuthServiceImpl.java	(revision 28b3398dcd7f9cfd044c2cb7923434b06037fee2)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/impl/AuthServiceImpl.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -18,4 +18,5 @@
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.HashMap;
 
@@ -34,4 +35,6 @@
     public User signUpJobSeeker(JobSeeker jobSeeker) {
         jobSeeker.setPassword(passwordEncoder.encode(jobSeeker.getPassword()));
+        jobSeeker.setHasAccess(true);
+        jobSeeker.setRegisteredOn(LocalDateTime.now());
         return jobSeekerRepository.save(jobSeeker);
     }
@@ -39,4 +42,6 @@
     public User signUpRecruiter(Recruiter recruiter) {
         recruiter.setPassword(passwordEncoder.encode(recruiter.getPassword()));
+        recruiter.setHasAccess(false);
+        recruiter.setRegisteredOn(LocalDateTime.now());
         return recruiterRepository.save(recruiter);
     }
@@ -49,5 +54,5 @@
         String refreshJwt = jwtService.generateRefreshToken(new HashMap<>(), user);
 
-        return new JwtAuthResponse(user.getId(), user.getEmail(), user.getName(), user.getRole().name(), jwt, refreshJwt);
+        return new JwtAuthResponse(user.getId(), user.getEmail(), user.getName(), user.getRole().name(), user.isHasAccess(), jwt, refreshJwt);
     }
     
@@ -58,5 +63,5 @@
             String jwt = jwtService.generateToken(user);
 
-            return new JwtAuthResponse(user.getId(), user.getEmail(), user.getName(), user.getRole().name(), jwt, refreshTokenRequest.getToken());
+            return new JwtAuthResponse(user.getId(), user.getEmail(), user.getName(), user.getRole().name(), user.isHasAccess(), jwt, refreshTokenRequest.getToken());
         }
         return null;
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/impl/JwtServiceImpl.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/impl/JwtServiceImpl.java	(revision 28b3398dcd7f9cfd044c2cb7923434b06037fee2)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/impl/JwtServiceImpl.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -6,4 +6,5 @@
 import io.jsonwebtoken.io.Decoders;
 import io.jsonwebtoken.security.Keys;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.User;
 import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.JwtService;
 import org.springframework.security.core.userdetails.UserDetails;
@@ -19,6 +20,9 @@
     private final static String SECRET_KEY = "7191b1d33668d4a2316a02f9a40798b77bccd22173bd882c93a0a916a5e921d1";
 
-    public String generateToken(UserDetails userDetails) {
-        return Jwts.builder().setSubject(userDetails.getUsername())
+    public String generateToken(User user) {
+        return Jwts.builder().setSubject(user.getUsername())
+                .claim("name", user.getName())
+                .claim("role", user.getRole())
+                .claim("access", user.isHasAccess())
                 .setIssuedAt(new Date())
                 .setExpiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24))
