use of org.openforis.collect.model.User in project collect by openforis.
the class RecordDao method createDetachedUser.
private static User createDetachedUser(Integer userId) {
if (userId == null) {
return null;
}
User user = new User();
user.setId(userId);
return user;
}
use of org.openforis.collect.model.User in project collect by openforis.
the class UserDao method loadByUserName.
public User loadByUserName(String userName, Boolean enabled) {
UserDSLContext dsl = dsl();
SelectConditionStep<OfcUserRecord> query = dsl.selectFrom(OFC_USER).where(OFC_USER.USERNAME.equal(userName));
if (enabled != null) {
String enabledFlag = enabled ? "Y" : "N";
query.and(OFC_USER.ENABLED.equal(enabledFlag));
}
Record r = query.fetchOne();
User user = r != null ? dsl.fromRecord(r) : null;
return user;
}
use of org.openforis.collect.model.User in project collect by openforis.
the class DataExportService method createRecordFilter.
private RecordFilter createRecordFilter(CollectSurvey survey, Integer rootEntityId, boolean onlyOwnedRecords, String[] rootEntityKeyValues) {
RecordFilter recordFilter = new RecordFilter(survey, rootEntityId);
// filter by record owner
if (onlyOwnedRecords) {
SessionState sessionState = sessionManager.getSessionState();
User user = sessionState.getUser();
recordFilter.setOwnerId(user.getId());
}
// filter by root entity keys
recordFilter.setKeyValues(rootEntityKeyValues);
return recordFilter;
}
use of org.openforis.collect.model.User in project collect by openforis.
the class DataService method promote.
protected void promote(Step to) throws RecordPersistenceException, RecordPromoteException {
sessionManager.checkIsActiveRecordLocked();
SessionState sessionState = sessionManager.getSessionState();
CollectRecord record = sessionState.getActiveRecord();
String userName = sessionState.getUser().getUsername();
Step currentStep = record.getStep();
Step exptectedStep = to.getPrevious();
if (exptectedStep == currentStep) {
User user = sessionState.getUser();
sessionEventDispatcher.recordSaved(record);
recordManager.promote(record, user);
publishRecordPromotedEvents(record, userName);
recordManager.releaseLock(record.getId());
sessionManager.clearActiveRecord();
if (isCurrentRecordIndexable()) {
recordIndexService.permanentlyIndex(record);
}
} else {
throw new IllegalStateException("The active record cannot be submitted: it is not in the exptected phase: " + exptectedStep);
}
}
use of org.openforis.collect.model.User in project collect by openforis.
the class DataService method findAssignableCodeListItems.
/**
* Gets the code list items assignable to the specified attribute.
*
* @param parentEntityId
* @param attrName
* @return
*/
@Secured(USER)
public List<CodeListItemProxy> findAssignableCodeListItems(int parentEntityId, String attrName) {
CollectRecord record = getActiveRecord();
CollectSurvey survey = (CollectSurvey) record.getSurvey();
UserGroup surveyUserGroup = survey.getUserGroup();
User user = sessionManager.getLoggedUser();
final UserInGroup userInGroup = userGroupManager.findUserInGroupOrDescendants(surveyUserGroup, user);
if (userInGroup == null) {
throw new IllegalStateException(String.format("User %s not allowed to access survey %s", user.getUsername(), survey.getName()));
}
Entity parent = (Entity) record.getNodeByInternalId(parentEntityId);
CodeAttributeDefinition def = (CodeAttributeDefinition) parent.getDefinition().getChildDefinition(attrName);
List<CodeListItem> items = codeListManager.loadValidItems(parent, def);
List<CodeListItem> filteredItems = new ArrayList<CodeListItem>(items);
// filter by user group qualifier (if any)
UserGroup group = userGroupManager.loadById(userInGroup.getGroupId());
String qualifierName = group.getQualifier1Name();
String listHierarchicalLevelName = def.getList().isHierarchical() ? def.getHierarchicalLevel() : def.getListName();
if (qualifierName != null && qualifierName.equals(listHierarchicalLevelName)) {
CollectionUtils.filter(filteredItems, new Predicate<CodeListItem>() {
public boolean evaluate(CodeListItem item) {
return item.getCode().equals(group.getQualifier1Value());
}
});
}
List<CodeListItemProxy> result = CodeListItemProxy.fromList(filteredItems);
List<Node<?>> selectedCodes = parent.getChildren(attrName);
CodeListItemProxy.setSelectedItems(result, selectedCodes);
return result;
}
Aggregations