add section admin permission
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user