package com.constellio.model.entities.records.wrappers; import com.constellio.model.entities.records.Record; public abstract class UserPermissionsChecker { protected User user; protected UserPermissionsChecker(User user) { this.user = user; } public abstract boolean globally(); public abstract boolean on(Record record); public abstract boolean onSomething(); public boolean on(RecordWrapper recordWrapper) { return on(recordWrapper.getWrappedRecord()); } public boolean onAll(RecordWrapper... recordWrappers) { Record[] records = new Record[recordWrappers.length]; for (int i = 0; i < recordWrappers.length; i++) { records[i] = recordWrappers[i].getWrappedRecord(); } return onAll(records); } public boolean onAny(RecordWrapper... recordWrappers) { Record[] records = new Record[recordWrappers.length]; for (int i = 0; i < recordWrappers.length; i++) { records[i] = recordWrappers[i].getWrappedRecord(); } return onAny(records); } public boolean onAll(Record... records) { if (user.isSystemAdmin()) { return true; } for (Record record : records) { if (!on(record)) { return false; } } return true; } public boolean onAny(Record... records) { if (user.isSystemAdmin()) { return true; } for (Record record : records) { if (on(record)) { return true; } } return false; } }