package com.constellio.app.ui.pages.collection; import java.util.ArrayList; import java.util.List; import com.constellio.app.ui.entities.RecordVO; import com.constellio.app.ui.entities.RecordVO.VIEW_MODE; import com.constellio.app.ui.entities.RoleVO; import com.constellio.app.ui.pages.base.SingleSchemaBasePresenter; import com.constellio.model.entities.CorePermissions; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.entities.security.Role; import com.constellio.model.entities.security.global.UserCredential; import com.constellio.model.services.security.roles.RolesManager; import com.constellio.model.services.users.UserServices; public class CollectionUserPresenter extends SingleSchemaBasePresenter<CollectionUserView> { String recordId; public CollectionUserPresenter(CollectionUserView view) { super(view, User.DEFAULT_SCHEMA); } public void forRequestParams(String parameters) { recordId = parameters; } public RecordVO getUser() { return presenterService().getRecordVO(recordId, VIEW_MODE.DISPLAY, view.getSessionContext()); } public String getRoleTitle(String roleCode) { return roleManager().getRole(view.getCollection(), roleCode).getTitle(); } public List<RoleVO> getRoles() { List<RoleVO> result = new ArrayList<>(); for (Role role : roleManager().getAllRoles(view.getCollection())) { result.add(new RoleVO(role.getCode(), role.getTitle(), role.getOperationPermissions())); } return result; } public void authorizationsButtonClicked() { view.navigate().to().listPrincipalAccessAuthorizations(recordId); } public void rolesButtonClicked() { view.navigate().to().editCollectionUserRoles(recordId); } public boolean isDeletionEnabled() { return !getCurrentUser().getId().equals(recordId); } public void deleteButtonClicked() { UserServices userServices = modelLayerFactory.newUserServices(); User user = coreSchemas().getUser(recordId); UserCredential userCredential = userServices.getUserCredential(user.getUsername()); userServices.removeUserFromCollection(userCredential, view.getCollection()); } private RolesManager roleManager() { return modelLayerFactory.getRolesManager(); } @Override protected boolean hasPageAccess(String params, User user) { return user.has(CorePermissions.MANAGE_SECURITY).globally(); } }