use of org.craftercms.profile.api.Tenant in project profile by craftercms.
the class ProfileServiceImpl method getProfileCountByQuery.
@Override
public long getProfileCountByQuery(String tenantName, String query) throws ProfileException {
checkIfManageProfilesIsAllowed(tenantName);
Tenant tenant = getTenant(tenantName);
try {
return profileRepository.count(getFinalQuery(tenant, query));
} catch (MongoDataException e) {
throw new I10nProfileException(ERROR_KEY_GET_PROFILE_COUNT_BY_QUERY_ERROR, e, tenant, query);
}
}
use of org.craftercms.profile.api.Tenant in project profile by craftercms.
the class ProfileServiceImpl method getProfilesByQuery.
@Override
public List<Profile> getProfilesByQuery(String tenantName, String query, String sortBy, SortOrder sortOrder, Integer start, Integer count, String... attributesToReturn) throws ProfileException {
checkIfManageProfilesIsAllowed(tenantName);
Tenant tenant = getTenant(tenantName);
try {
List<Profile> profiles = IterableUtils.toList(profileRepository.findByQuery(getFinalQuery(tenant, query), sortBy, sortOrder, start, count, attributesToReturn));
filterNonReadableAttributes(tenant, profiles);
return profiles;
} catch (MongoDataException e) {
throw new I10nProfileException(ERROR_KEY_GET_PROFILES_BY_QUERY_ERROR, e, tenant, query);
}
}
use of org.craftercms.profile.api.Tenant in project profile by craftercms.
the class ProfileServiceImpl method createProfile.
@Override
public Profile createProfile(String tenantName, String username, String password, String email, boolean enabled, Set<String> roles, Map<String, Object> attributes, String verificationUrl) throws ProfileException {
checkIfManageProfilesIsAllowed(tenantName);
if (!EmailUtils.validateEmail(email)) {
throw new InvalidEmailAddressException(email);
}
try {
Tenant tenant = getTenant(tenantName);
Date now = new Date();
Profile profile = new Profile();
profile.setTenant(tenantName);
profile.setUsername(username);
profile.setPassword(CryptoUtils.hashPassword(password));
profile.setEmail(email);
profile.setCreatedOn(now);
profile.setLastModified(now);
profile.setVerified(false);
boolean emailNewProfiles = tenant.isVerifyNewProfiles();
if (!emailNewProfiles || StringUtils.isEmpty(verificationUrl)) {
profile.setEnabled(enabled);
}
if (CollectionUtils.isNotEmpty(roles)) {
profile.setRoles(roles);
}
for (AttributeDefinition definition : tenant.getAttributeDefinitions()) {
if (definition.getDefaultValue() != null) {
profile.setAttribute(definition.getName(), definition.getDefaultValue());
}
}
if (MapUtils.isNotEmpty(attributes)) {
rejectAttributesIfActionNotAllowed(tenant, attributes.keySet(), AttributeAction.WRITE_ATTRIBUTE);
profile.getAttributes().putAll(attributes);
}
profileRepository.insert(profile);
logger.debug(LOG_KEY_PROFILE_CREATED, profile);
if (emailNewProfiles && StringUtils.isNotEmpty(verificationUrl)) {
VerificationToken token = verificationService.createToken(profile);
verificationService.sendEmail(token, profile, verificationUrl, newProfileEmailFromAddress, newProfileEmailSubject, newProfileEmailTemplateName);
}
return profile;
} catch (DuplicateKeyException e) {
throw new ProfileExistsException(tenantName, username);
} catch (MongoDataException e) {
throw new I10nProfileException(ERROR_KEY_CREATE_PROFILE_ERROR, e, username, tenantName);
}
}
use of org.craftercms.profile.api.Tenant in project profile by craftercms.
the class ProfileServiceImplTest method getTenant1.
private Tenant getTenant1() {
Tenant tenant = new Tenant();
tenant.setName(TENANT1_NAME);
tenant.setVerifyNewProfiles(true);
tenant.setAttributeDefinitions(getAttributeDefinitions());
return tenant;
}
use of org.craftercms.profile.api.Tenant in project profile by craftercms.
the class ProfileServiceImplTest method getTenant2.
private Tenant getTenant2() {
Tenant tenant = new Tenant();
tenant.setName(TENANT2_NAME);
tenant.setVerifyNewProfiles(false);
tenant.setAttributeDefinitions(getAttributeDefinitions());
return tenant;
}
Aggregations