use of org.craftercms.profile.api.exceptions.ProfileException in project profile by craftercms.
the class ProfileServiceImpl method addProfileAttachment.
@Override
public ProfileAttachment addProfileAttachment(final String profileId, final String attachmentName, final InputStream file) throws ProfileException {
String storeName = "/" + profileId + "/" + FilenameUtils.removeExtension(attachmentName);
try {
ObjectId currentId = checkIfAttachmentExist(storeName);
String mimeType = getAttachmentContentType(attachmentName);
FileInfo fileInfo;
if (currentId != null) {
// Update !!!
fileInfo = profileRepository.updateFile(currentId, file, storeName, mimeType, true);
} else {
fileInfo = profileRepository.saveFile(file, storeName, mimeType);
}
return fileInfoToProfileAttachment(fileInfo);
} catch (MongoDataException | FileExistsException | FileNotFoundException e) {
throw new ProfileException("Unable to attach file to profile '" + profileId + "'", e);
}
}
use of org.craftercms.profile.api.exceptions.ProfileException in project profile by craftercms.
the class TenantServiceImpl method verifyNewProfiles.
@Override
public Tenant verifyNewProfiles(String tenantName, final boolean verify) throws ProfileException {
Tenant tenant = updateTenant(tenantName, new UpdateCallback() {
@Override
public void doWithTenant(TenantUpdater tenantUpdater) throws ProfileException {
tenantUpdater.setVerifyNewProfiles(verify);
}
});
logger.debug(LOG_KEY_VERIFY_NEW_PROFILES_FLAG_SET, tenantName, verify);
return tenant;
}
use of org.craftercms.profile.api.exceptions.ProfileException in project profile by craftercms.
the class TenantServiceImpl method addRoles.
@Override
public Tenant addRoles(String tenantName, final Collection<String> roles) throws ProfileException {
Tenant tenant = updateTenant(tenantName, new UpdateCallback() {
@Override
public void doWithTenant(TenantUpdater tenantUpdater) throws ProfileException {
tenantUpdater.addAvailableRoles(roles);
}
});
logger.debug(LOG_KEY_ROLES_ADDED, roles, tenantName);
return tenant;
}
use of org.craftercms.profile.api.exceptions.ProfileException in project profile by craftercms.
the class TenantServiceImpl method updateTenant.
@Override
public Tenant updateTenant(final Tenant tenant) throws ProfileException {
final String tenantName = tenant.getName();
Tenant updatedTenant = updateTenant(tenant.getName(), new UpdateCallback() {
@Override
public void doWithTenant(TenantUpdater tenantUpdater) throws ProfileException {
Tenant originalTenant = tenantUpdater.getTenant();
Collection<String> originalRoles = originalTenant.getAvailableRoles();
Collection<String> newRoles = tenant.getAvailableRoles();
Collection<AttributeDefinition> originalDefinitions = originalTenant.getAttributeDefinitions();
Collection<AttributeDefinition> newDefinitions = tenant.getAttributeDefinitions();
Collection<String> removedRoles = CollectionUtils.subtract(originalRoles, newRoles);
Collection<AttributeDefinition> removedDefinitions = CollectionUtils.subtract(originalDefinitions, newDefinitions);
for (String removedRole : removedRoles) {
removeRoleFromProfiles(tenantName, removedRole);
}
for (AttributeDefinition removedDefinition : removedDefinitions) {
removeAttributeFromProfiles(tenantName, removedDefinition.getName());
}
tenantUpdater.setVerifyNewProfiles(tenant.isVerifyNewProfiles());
tenantUpdater.setSsoEnabled(tenant.isSsoEnabled());
tenantUpdater.setAvailableRoles(tenant.getAvailableRoles());
tenantUpdater.setAttributeDefinitions(tenant.getAttributeDefinitions());
}
});
for (AttributeDefinition definition : updatedTenant.getAttributeDefinitions()) {
addDefaultValue(tenantName, definition.getName(), definition.getDefaultValue());
}
return updatedTenant;
}
use of org.craftercms.profile.api.exceptions.ProfileException in project profile by craftercms.
the class TenantServiceImpl method removeRoles.
@Override
public Tenant removeRoles(final String tenantName, final Collection<String> roles) throws ProfileException {
Tenant tenant = updateTenant(tenantName, new UpdateCallback() {
@Override
public void doWithTenant(TenantUpdater tenantUpdater) throws ProfileException {
for (String role : roles) {
removeRoleFromProfiles(tenantName, role);
}
tenantUpdater.removeAvailableRoles(roles);
}
});
logger.debug(LOG_KEY_ROLES_REMOVED, roles, tenantName);
return tenant;
}
Aggregations