@Override public boolean isAdmin(Project aProject, User aUser) { boolean user = false; try { List<ProjectPermission> permissionLevels = listProjectPermissionLevel(aUser, aProject); for (ProjectPermission permissionLevel : permissionLevels) { if (StringUtils.equalsIgnoreCase(permissionLevel.getLevel().getName(), PermissionLevel.MANAGER.getName())) { user = true; break; } } } catch (NoResultException ex) { log.info("No permision is given to this user " + ex); } return user; }
@Override public boolean isCurator(Project aProject, User aUser) { boolean curator = false; try { List<ProjectPermission> permissionLevels = listProjectPermissionLevel(aUser, aProject); for (ProjectPermission permissionLevel : permissionLevels) { if (StringUtils.equalsIgnoreCase(permissionLevel.getLevel().getName(), PermissionLevel.CURATOR.getName())) { curator = true; break; } } } catch (NoResultException ex) { log.info("No permision is given to this user " + ex); } return curator; }
@Override @Transactional(noRollbackFor = NoResultException.class) public void setProjectPermissionLevels(User aUser, Project aProject, Collection<PermissionLevel> aLevels) { Set<PermissionLevel> levelsToBeGranted = new HashSet<>(aLevels); List<ProjectPermission> permissions = new ArrayList<>(); try { permissions.addAll(listProjectPermissionLevel(aUser, aProject)); } catch (NoResultException e) { // Nothing to do } // Remove permissions that no longer exist for (ProjectPermission permission : permissions) { if (!aLevels.contains(permission.getLevel())) { removeProjectPermission(permission); } else { levelsToBeGranted.remove(permission.getLevel()); } } // Grant new permissions for (PermissionLevel level : levelsToBeGranted) { createProjectPermission(new ProjectPermission(aProject, aUser.getUsername(), level)); } }
@Override @Transactional(noRollbackFor = NoResultException.class) public void setProjectPermissionLevels(User aUser, Project aProject, Collection<PermissionLevel> aLevels) { Set<PermissionLevel> levelsToBeGranted = new HashSet<>(aLevels); List<ProjectPermission> permissions = new ArrayList<>(); try { permissions.addAll(listProjectPermissionLevel(aUser, aProject)); } catch (NoResultException e) { // Nothing to do } // Remove permissions that no longer exist for (ProjectPermission permission : permissions) { if (!aLevels.contains(permission.getLevel())) { removeProjectPermission(permission); } else { levelsToBeGranted.remove(permission.getLevel()); } } // Grant new permissions for (PermissionLevel level : levelsToBeGranted) { createProjectPermission(new ProjectPermission(aProject, aUser.getUsername(), level)); } }
@Override public boolean isManager(Project aProject, User aUser) { boolean projectAdmin = false; try { List<ProjectPermission> permissionLevels = listProjectPermissionLevel(aUser, aProject); for (ProjectPermission permissionLevel : permissionLevels) { if (StringUtils.equalsIgnoreCase(permissionLevel.getLevel().getName(), PermissionLevel.MANAGER.getName())) { projectAdmin = true; break; } } } catch (NoResultException ex) { log.info("No permision is given to this user " + ex); } return projectAdmin; }
@Override public boolean isAdmin(Project aProject, User aUser) { boolean user = false; try { List<ProjectPermission> permissionLevels = listProjectPermissionLevel(aUser, aProject); for (ProjectPermission permissionLevel : permissionLevels) { if (StringUtils.equalsIgnoreCase(permissionLevel.getLevel().getName(), PermissionLevel.MANAGER.getName())) { user = true; break; } } } catch (NoResultException ex) { log.info("No permision is given to this user " + ex); } return user; }
@Override public boolean isManager(Project aProject, User aUser) { boolean projectAdmin = false; try { List<ProjectPermission> permissionLevels = listProjectPermissionLevel(aUser, aProject); for (ProjectPermission permissionLevel : permissionLevels) { if (StringUtils.equalsIgnoreCase(permissionLevel.getLevel().getName(), PermissionLevel.MANAGER.getName())) { projectAdmin = true; break; } } } catch (NoResultException ex) { log.info("No permision is given to this user " + ex); } return projectAdmin; }
@Override public boolean isAnnotator(Project aProject, User aUser) { boolean user = false; try { List<ProjectPermission> permissionLevels = listProjectPermissionLevel(aUser, aProject); for (ProjectPermission permissionLevel : permissionLevels) { if (StringUtils.equalsIgnoreCase(permissionLevel.getLevel().getName(), PermissionLevel.ANNOTATOR.getName())) { user = true; break; } } } catch (NoResultException ex) { log.info("No permision is given to this user " + ex); } return user; } }
@Override public boolean isCurator(Project aProject, User aUser) { boolean curator = false; try { List<ProjectPermission> permissionLevels = listProjectPermissionLevel(aUser, aProject); for (ProjectPermission permissionLevel : permissionLevels) { if (StringUtils.equalsIgnoreCase(permissionLevel.getLevel().getName(), PermissionLevel.CURATOR.getName())) { curator = true; break; } } } catch (NoResultException ex) { log.info("No permision is given to this user " + ex); } return curator; }
@Override public boolean isAnnotator(Project aProject, User aUser) { boolean user = false; try { List<ProjectPermission> permissionLevels = listProjectPermissionLevel(aUser, aProject); for (ProjectPermission permissionLevel : permissionLevels) { if (StringUtils.equalsIgnoreCase(permissionLevel.getLevel().getName(), PermissionLevel.ANNOTATOR.getName())) { user = true; break; } } } catch (NoResultException ex) { log.info("No permision is given to this user " + ex); } return user; } }
@Override @Transactional public void createProjectPermission(ProjectPermission aPermission) { entityManager.persist(aPermission); try (MDC.MDCCloseable closable = MDC.putCloseable(Logging.KEY_PROJECT_ID, String.valueOf(aPermission.getProject().getId()))) { log.info("Created permission [{}] for user [{}] on project [{}]({})", aPermission.getLevel(), aPermission.getUser(), aPermission.getProject().getName(), aPermission.getProject().getId()); } }
@Override @Transactional public void createProjectPermission(ProjectPermission aPermission) { entityManager.persist(aPermission); try (MDC.MDCCloseable closable = MDC.putCloseable(Logging.KEY_PROJECT_ID, String.valueOf(aPermission.getProject().getId()))) { log.info("Created permission [{}] for user [{}] on project [{}]({})", aPermission.getLevel(), aPermission.getUser(), aPermission.getProject().getName(), aPermission.getProject().getId()); } }
@Override @Transactional public void removeProjectPermission(ProjectPermission aPermission) { entityManager.remove(aPermission); try (MDC.MDCCloseable closable = MDC.putCloseable(Logging.KEY_PROJECT_ID, String.valueOf(aPermission.getProject().getId()))) { log.info("Removed permission [{}] for user [{}] on project [{}]({})", aPermission.getLevel(), aPermission.getUser(), aPermission.getProject().getName(), aPermission.getProject().getId()); } }
@Override @Transactional public void removeProjectPermission(ProjectPermission aPermission) { entityManager.remove(aPermission); try (MDC.MDCCloseable closable = MDC.putCloseable(Logging.KEY_PROJECT_ID, String.valueOf(aPermission.getProject().getId()))) { log.info("Removed permission [{}] for user [{}] on project [{}]({})", aPermission.getLevel(), aPermission.getUser(), aPermission.getProject().getName(), aPermission.getProject().getId()); } }
@Override protected void onSelectionChanged(User aNewSelection) { if (aNewSelection == null) { return; } selectedUser = aNewSelection; // Clear old selections permissionLevelDetailForm.setModelObject(null); List<ProjectPermission> projectPermissions = projectRepository .listProjectPermisionLevel(selectedUser, selectedProject.getObject()); List<PermissionLevel> levels = new ArrayList<PermissionLevel>(); for (ProjectPermission permission : projectPermissions) { levels.add(permission.getLevel()); } SelectionModel newSelectionModel = new SelectionModel(); newSelectionModel.permissionLevels.addAll(levels); permissionLevelDetailForm.setModelObject(newSelectionModel); }
@Override protected void populateItem(ListItem<ProjectPermission> aItem) { PermissionLevel level = aItem.getModelObject().getLevel(); aItem.add(new Label(MID_LABEL, getString( Classes.simpleName(level.getDeclaringClass()) + '.' + level.toString()))); } };
@Override protected void populateItem(ListItem<ProjectPermission> aItem) { PermissionLevel level = aItem.getModelObject().getLevel(); aItem.add(new Label(MID_LABEL, getString( Classes.simpleName(level.getDeclaringClass()) + '.' + level.toString()))); } };
.listProjectPermisionLevel(aUser, aProject); for (ProjectPermission permissionLevel : permissionLevels) { if (StringUtils.equalsIgnoreCase(permissionLevel.getLevel().getName(), PermissionLevel.CURATOR.getName())) { curator = true;
@Override public void exportData(ProjectExportRequest aRequest, ExportedProject aExProject, File aStage) throws Exception { Project project = aRequest.getProject(); // add project permissions to the project List<ExportedProjectPermission> projectPermissions = new ArrayList<>(); for (User user : projectService.listProjectUsersWithPermissions(project)) { for (ProjectPermission permission : projectService.listProjectPermissionLevel(user, project)) { ExportedProjectPermission permissionToExport = new ExportedProjectPermission(); permissionToExport.setLevel(permission.getLevel()); permissionToExport.setUser(user.getUsername()); projectPermissions.add(permissionToExport); } } aExProject.setProjectPermissions(projectPermissions); }
@Override public void exportData(ProjectExportRequest aRequest, ExportedProject aExProject, File aStage) throws Exception { Project project = aRequest.getProject(); // add project permissions to the project List<ExportedProjectPermission> projectPermissions = new ArrayList<>(); for (User user : projectService.listProjectUsersWithPermissions(project)) { for (ProjectPermission permission : projectService.listProjectPermissionLevel(user, project)) { ExportedProjectPermission permissionToExport = new ExportedProjectPermission(); permissionToExport.setLevel(permission.getLevel()); permissionToExport.setUser(user.getUsername()); projectPermissions.add(permissionToExport); } } aExProject.setProjectPermissions(projectPermissions); }