package com.constellio.app.modules.rm.ui.components.retentionRule;
import com.constellio.app.modules.rm.constants.RMPermissionsTo;
import com.constellio.app.modules.rm.wrappers.RetentionRule;
import com.constellio.app.services.factories.ConstellioFactories;
import com.constellio.app.ui.application.ConstellioUI;
import com.constellio.app.ui.entities.RecordVO;
import com.constellio.app.ui.framework.components.display.ReferenceDisplay;
import com.constellio.app.ui.pages.base.SessionContext;
import com.constellio.model.entities.records.Record;
import com.constellio.model.entities.records.wrappers.User;
import com.constellio.model.entities.schemas.MetadataSchemaTypes;
import com.constellio.model.services.users.UserServices;
public class RetentionRuleReferenceDisplay extends ReferenceDisplay {
public RetentionRuleReferenceDisplay(RecordVO recordVO) {
super(recordVO, hasDisplayRetentionRulePageAccess());
}
public RetentionRuleReferenceDisplay(String recordId) {
super(recordId, hasDisplayRetentionRulePageAccess());
}
private static boolean hasDisplayRetentionRulePageAccess() {
ConstellioFactories constellioFactories = ConstellioUI.getCurrent().getConstellioFactories();
SessionContext sessionContext = ConstellioUI.getCurrent().getSessionContext();
String username = sessionContext.getCurrentUser().getUsername();
String collection = sessionContext.getCurrentCollection();
UserServices userServices = constellioFactories.getModelLayerFactory().newUserServices();
User user = userServices.getUserInCollection(username, collection);
return user.has(RMPermissionsTo.MANAGE_RETENTIONRULE).globally();
}
@Override
protected String getNiceTitle(Record record, MetadataSchemaTypes types) {
RetentionRule retentionRule = new RetentionRule(record, types);
return new RetentionRuleInfoBuilder(retentionRule).getInfo();
}
}