package fi.otavanopisto.muikku.controller; import java.util.List; import javax.inject.Inject; import fi.otavanopisto.muikku.dao.security.GroupPermissionDAO; import fi.otavanopisto.muikku.dao.security.PermissionDAO; import fi.otavanopisto.muikku.dao.security.RolePermissionDAO; import fi.otavanopisto.muikku.dao.security.WorkspaceGroupPermissionDAO; import fi.otavanopisto.muikku.model.security.Permission; import fi.otavanopisto.muikku.model.security.RolePermission; import fi.otavanopisto.muikku.model.security.WorkspaceGroupPermission; import fi.otavanopisto.muikku.model.users.RoleEntity; import fi.otavanopisto.muikku.model.users.UserGroupEntity; import fi.otavanopisto.muikku.model.workspace.WorkspaceEntity; public class PermissionController { @Inject private PermissionDAO permissionDAO; @Inject private GroupPermissionDAO groupPermissionDAO; @Inject private RolePermissionDAO rolePermissionDAO; @Inject private WorkspaceGroupPermissionDAO workspaceGroupPermissionDAO; public Permission findByName(String name) { return permissionDAO.findByName(name); } public List<Permission> listPermissionsByScope(String scope) { return permissionDAO.listByScope(scope); } public boolean hasPermission(RoleEntity role, Permission permission) { return rolePermissionDAO.findByUserRoleAndPermission(role, permission) != null; } public boolean hasPermission(UserGroupEntity userGroupEntity, Permission permission) { return groupPermissionDAO.findByUserGroupAndPermission(userGroupEntity, permission) != null; } public boolean hasPermission(WorkspaceEntity workspaceEntity, UserGroupEntity userGroupEntity, Permission permission) { return workspaceGroupPermissionDAO.findByGroupAndPermission(workspaceEntity, userGroupEntity, permission) != null; } public boolean hasWorkspaceGroupPermission(WorkspaceEntity workspaceEntity, UserGroupEntity userGroupEntity, Permission permission) { return workspaceGroupPermissionDAO.hasWorkspacePermissionAccess(workspaceEntity, userGroupEntity, permission); } public RolePermission findRolePermission(RoleEntity roleEntity, Permission permission) { return rolePermissionDAO.findByUserRoleAndPermission(roleEntity, permission); } public WorkspaceGroupPermission findWorkspaceGroupPermission(WorkspaceEntity workspaceEntity, UserGroupEntity userGroupEntity, Permission permission) { return workspaceGroupPermissionDAO.findByGroupAndPermission(workspaceEntity, userGroupEntity, permission); } public WorkspaceGroupPermission addWorkspaceGroupPermission(WorkspaceEntity workspaceEntity, UserGroupEntity userGroupEntity, Permission permission) { return workspaceGroupPermissionDAO.create(workspaceEntity, userGroupEntity, permission); } public void removeWorkspaceGroupPermission(WorkspaceGroupPermission workspaceGroupPermission) { workspaceGroupPermissionDAO.delete(workspaceGroupPermission); } }