package fi.otavanopisto.muikku.controller; import java.util.List; import java.util.logging.Logger; import javax.ejb.Stateful; import javax.enterprise.inject.Model; import javax.inject.Inject; import fi.otavanopisto.muikku.dao.security.PermissionDAO; import fi.otavanopisto.muikku.dao.security.ResourceRightsDAO; import fi.otavanopisto.muikku.dao.security.ResourceRolePermissionDAO; import fi.otavanopisto.muikku.model.security.Permission; import fi.otavanopisto.muikku.model.security.ResourceRights; import fi.otavanopisto.muikku.model.security.ResourceRolePermission; import fi.otavanopisto.muikku.model.users.RoleEntity; import fi.otavanopisto.muikku.security.PermissionScope; @Stateful @Model public class ResourceRightsController { @Inject private Logger logger; @Inject private PermissionDAO permissionDAO; @Inject private ResourceRolePermissionDAO resourceRolePermissionDAO; @Inject private ResourceRightsDAO resourceRightsDAO; public ResourceRights findResourceRightsById(Long id) { return resourceRightsDAO.findById(id); } public List<Permission> listResourcePermissions() { return permissionDAO.listByScope(PermissionScope.RESOURCE); } public ResourceRights create() { return resourceRightsDAO.create(); } public boolean hasResourceRolePermission(ResourceRights resourceRights, RoleEntity role, Permission permission) { return resourceRolePermissionDAO.hasResourcePermissionAccess(resourceRights, role, permission); } public ResourceRolePermission addResourceUserRolePermission(ResourceRights resourceRights, RoleEntity role, Permission permission) { return resourceRolePermissionDAO.create(resourceRights, role, permission); } public void deleteByResourceRights(ResourceRights resourceRights) { List<ResourceRolePermission> resourceRolePermissions = resourceRolePermissionDAO.listByResourceRights(resourceRights); logger.info(String.format("Deleting %d permissions of ResourceRights %d", resourceRolePermissions.size(), resourceRights.getId())); for (ResourceRolePermission resourceRolePermission : resourceRolePermissions) { resourceRolePermissionDAO.delete(resourceRolePermission); } } public void deleteResourceUserRolePermission(ResourceRolePermission resourceRolePermission) { resourceRolePermissionDAO.delete(resourceRolePermission); } }