add section admin permission

This commit is contained in:
2026-05-07 15:24:25 +07:00
parent 91c85173e4
commit 200d070fa5
9 changed files with 364 additions and 1 deletions
@@ -2,12 +2,17 @@ package ru.soune.nocopy.adminpanel.permission;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import ru.soune.nocopy.adminpanel.entity.AdminSection;
import ru.soune.nocopy.adminpanel.entity.AdminUser;
import ru.soune.nocopy.adminpanel.service.AdminSectionPermissionService;
@Component
@RequiredArgsConstructor
public class PermissionChecker {
private final AdminSectionPermissionService sectionPermissionService;
public boolean isSuperAdmin(AdminUser admin) {
if (admin == null || !admin.getIsActive()) return false;
return AdminPermission.isSuperAdmin(admin.getPermissions());
@@ -18,4 +23,19 @@ public class PermissionChecker {
throw new SecurityException("Super admin permission required");
}
}
public boolean canReadSection(AdminUser admin, AdminSection section) {
if (admin == null || !admin.getIsActive()) return false;
if (isSuperAdmin(admin)) return true;
return sectionPermissionService.canRead(admin.getId(), section);
}
public boolean canWriteSection(AdminUser admin, AdminSection section) {
if (admin == null || !admin.getIsActive()) return false;
if (isSuperAdmin(admin)) return true;
return sectionPermissionService.canWrite(admin.getId(), section);
}
}