Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/JobvistaBackendApplication.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/JobvistaBackendApplication.java	(revision 28b3398dcd7f9cfd044c2cb7923434b06037fee2)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/JobvistaBackendApplication.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -26,4 +26,5 @@
 			admin.setRole(Role.ROLE_ADMIN);
 			admin.setEmail("admin@admin.com");
+			admin.setHasAccess(true);
 //			admin.setName("admin");
 //			admin.setSurname("admin");
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/config/SecurityConfiguration.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/config/SecurityConfiguration.java	(revision 28b3398dcd7f9cfd044c2cb7923434b06037fee2)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/config/SecurityConfiguration.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -32,5 +32,5 @@
                         // TO DO: FIX PERMISSIONS
                         .requestMatchers("/api/job-advertisements/**","/api/job-advertisements/view/**","/api/recruiter/info/**",
-                                "/api/job-advertisements/apply/**","/api/auth/**", "/api/resume/**", "/api/my-applications/**", "/api/applications/{id}/update").permitAll()
+                                "/api/job-advertisements/apply/**","/api/auth/**", "/api/resume/**", "/api/my-applications/**", "/api/applications/{id}/update", "/api/admin/**").permitAll()
                         //.requestMatchers("/api/job-advertisements/**").hasAnyAuthority(Role.ROLE_RECRUITER.name())
                         .anyRequest().authenticated())
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/AdminController.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/AdminController.java	(revision 28b3398dcd7f9cfd044c2cb7923434b06037fee2)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/AdminController.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -2,11 +2,30 @@
 
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDetailsDTO;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.AdminService;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 @RestController
 @RequestMapping("/api/admin")
 @RequiredArgsConstructor
+@CrossOrigin(origins = "*")
 public class AdminController {
 
+    private final AdminService adminService;
+
+    @PostMapping("/change-access/{recruiter_id}")
+    public ResponseEntity<?> changeAccess(@PathVariable("recruiter_id") Long recruiterId, @RequestBody boolean access) {
+        RecruiterDetailsDTO recruiterDetailsDTO = adminService.changeAccess(recruiterId, access);
+        return new ResponseEntity<>(recruiterDetailsDTO, HttpStatus.OK);
+    }
+
+    @GetMapping("/recruiters")
+    public ResponseEntity<?> findAllRecruiters() {
+        List<RecruiterDetailsDTO> recruiterDetailsDTOList = adminService.findAllRecruiters();
+        return new ResponseEntity<>(recruiterDetailsDTOList, HttpStatus.OK);
+    }
 }
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/JwtAuthResponse.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/JwtAuthResponse.java	(revision 28b3398dcd7f9cfd044c2cb7923434b06037fee2)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/JwtAuthResponse.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -14,4 +14,5 @@
     private String name;
     private String role;
+    private boolean hasAccess;
     private String token;
     private String refreshToken;
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/RecruiterDetailsDTO.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/RecruiterDetailsDTO.java	(revision 28b3398dcd7f9cfd044c2cb7923434b06037fee2)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/RecruiterDetailsDTO.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -5,11 +5,16 @@
 import lombok.NoArgsConstructor;
 
+import java.time.LocalDateTime;
+
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
 public class RecruiterDetailsDTO {
+    private Long id;
     private String email;
     private String companyName;
     private String companyDescription;
     private String phoneNumber;
+    private boolean hasAccess;
+    private LocalDateTime registeredOn;
 }
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/User.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/User.java	(revision 28b3398dcd7f9cfd044c2cb7923434b06037fee2)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/User.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -11,4 +11,5 @@
 import org.springframework.security.core.userdetails.UserDetails;
 
+import java.time.LocalDateTime;
 import java.util.Collection;
 import java.util.List;
@@ -32,4 +33,9 @@
     @Enumerated(EnumType.STRING)
     protected Role role;
+
+    @Column(name = "has_access")
+    protected boolean hasAccess;
+
+    protected LocalDateTime registeredOn;
 
 
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/mappers/RecruiterMapper.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/mappers/RecruiterMapper.java	(revision 28b3398dcd7f9cfd044c2cb7923434b06037fee2)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/mappers/RecruiterMapper.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -18,8 +18,11 @@
     public static RecruiterDetailsDTO mapToRecruiterDetailsDTO(Recruiter recruiter) {
         return new RecruiterDetailsDTO(
+                recruiter.getId(),
                 recruiter.getEmail(),
                 recruiter.getCompanyName(),
                 recruiter.getCompanyDescription(),
-                recruiter.getPhoneNumber()
+                recruiter.getPhoneNumber(),
+                recruiter.isHasAccess(),
+                recruiter.getRegisteredOn()
         );
     }
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))
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/intef/AdminService.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/intef/AdminService.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/intef/AdminService.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -0,0 +1,10 @@
+package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef;
+
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDetailsDTO;
+
+import java.util.List;
+
+public interface AdminService {
+    RecruiterDetailsDTO changeAccess(long recruiterId, boolean access);
+    List<RecruiterDetailsDTO> findAllRecruiters();
+}
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/intef/JwtService.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/intef/JwtService.java	(revision 28b3398dcd7f9cfd044c2cb7923434b06037fee2)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/service/intef/JwtService.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
@@ -1,4 +1,5 @@
 package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef;
 
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.User;
 import org.springframework.security.core.userdetails.UserDetails;
 
@@ -6,5 +7,5 @@
 
 public interface JwtService {
-    String generateToken(UserDetails userDetails);
+    String generateToken(User user);
     String generateRefreshToken(Map<String, Object> extraClaims, UserDetails userDetails);
     String extractUsername(String token);
