use of org.olat.core.id.User in project openolat by klemens.
the class UserVOFactory method get.
public static UserVO get(Identity identity, Locale locale, boolean allProperties, boolean isAdmin, boolean withPortrait) {
if (locale == null) {
locale = I18nModule.getDefaultLocale();
}
UserVO userVO = new UserVO();
User user = identity.getUser();
userVO.setKey(identity.getKey());
if (identity != null) {
userVO.setLogin(identity.getName());
}
userVO.setExternalId(identity.getExternalId());
userVO.setFirstName(user.getProperty(UserConstants.FIRSTNAME, null));
userVO.setLastName(user.getProperty(UserConstants.LASTNAME, null));
userVO.setEmail(user.getProperty(UserConstants.EMAIL, null));
if (withPortrait) {
File portrait = DisplayPortraitManager.getInstance().getSmallPortrait(identity.getName());
if (portrait != null && portrait.exists()) {
try {
InputStream input = new FileInputStream(portrait);
byte[] datas = IOUtils.toByteArray(input);
FileUtils.closeSafely(input);
byte[] data64 = Base64.encodeBase64(datas);
userVO.setPortrait(new String(data64, "UTF8"));
} catch (IOException e) {
log.error("", e);
}
}
}
if (allProperties) {
UserManager um = UserManager.getInstance();
HomePageConfig hpc = isAdmin ? null : HomePageConfigManagerImpl.getInstance().loadConfigFor(identity.getName());
List<UserPropertyHandler> propertyHandlers = um.getUserPropertyHandlersFor(UserWebService.PROPERTY_HANDLER_IDENTIFIER, false);
for (UserPropertyHandler propertyHandler : propertyHandlers) {
String propName = propertyHandler.getName();
if (hpc != null && !hpc.isEnabled(propName)) {
continue;
}
if (!UserConstants.FIRSTNAME.equals(propName) && !UserConstants.LASTNAME.equals(propName) && !UserConstants.EMAIL.equals(propName)) {
String value = propertyHandler.getUserProperty(user, locale);
userVO.putProperty(propName, value);
}
}
}
return userVO;
}
use of org.olat.core.id.User in project openolat by klemens.
the class BaseSecurityManagerTest method deleteInvalidAuthenticationsByEmail.
@Test
public void deleteInvalidAuthenticationsByEmail() {
Identity identity = JunitTestHelper.createAndPersistIdentityAsUser("auth-del-email-" + UUID.randomUUID().toString());
User user = identity.getUser();
String email = user.getEmail();
securityManager.createAndPersistAuthentication(identity, "OLAT", email, "secret", Encoder.Algorithm.sha512);
securityManager.createAndPersistAuthentication(identity, "del-mail", email, "secret", Encoder.Algorithm.sha512);
securityManager.createAndPersistAuthentication(identity, WebDAVAuthManager.PROVIDER_HA1_EMAIL, email, "secret", Encoder.Algorithm.sha512);
securityManager.createAndPersistAuthentication(identity, WebDAVAuthManager.PROVIDER_HA1_INSTITUTIONAL_EMAIL, email, "secret", Encoder.Algorithm.sha512);
securityManager.createAndPersistAuthentication(identity, WebDAVAuthManager.PROVIDER_WEBDAV_EMAIL, email, "secret", Encoder.Algorithm.sha512);
securityManager.createAndPersistAuthentication(identity, WebDAVAuthManager.PROVIDER_WEBDAV_INSTITUTIONAL_EMAIL, email, "secret", Encoder.Algorithm.sha512);
dbInstance.commitAndCloseSession();
// User with email address exists: The authentications are valid.
securityManager.deleteInvalidAuthenticationsByEmail(email);
dbInstance.commitAndCloseSession();
Assert.assertNotNull(securityManager.findAuthenticationByAuthusername(email, WebDAVAuthManager.PROVIDER_HA1_EMAIL));
Assert.assertNotNull(securityManager.findAuthenticationByAuthusername(email, WebDAVAuthManager.PROVIDER_HA1_INSTITUTIONAL_EMAIL));
Assert.assertNotNull(securityManager.findAuthenticationByAuthusername(email, WebDAVAuthManager.PROVIDER_WEBDAV_EMAIL));
Assert.assertNotNull(securityManager.findAuthenticationByAuthusername(email, WebDAVAuthManager.PROVIDER_WEBDAV_INSTITUTIONAL_EMAIL));
Assert.assertNull(securityManager.findAuthenticationByAuthusername(email, "OLAT"));
Assert.assertNotNull(securityManager.findAuthenticationByAuthusername(identity.getName(), "OLAT"));
Assert.assertNotNull(securityManager.findAuthenticationByAuthusername(email, "del-mail"));
// Email of the user changed: The authentications are not valid any longer.
user.setProperty(UserConstants.EMAIL, "new@trashcmail.com");
user.setProperty(UserConstants.INSTITUTIONALEMAIL, "new@trashcmail.com");
userManager.updateUser(user);
dbInstance.commitAndCloseSession();
securityManager.deleteInvalidAuthenticationsByEmail(email);
dbInstance.commitAndCloseSession();
Assert.assertNull(securityManager.findAuthenticationByAuthusername(email, WebDAVAuthManager.PROVIDER_HA1_EMAIL));
Assert.assertNull(securityManager.findAuthenticationByAuthusername(email, WebDAVAuthManager.PROVIDER_HA1_INSTITUTIONAL_EMAIL));
Assert.assertNull(securityManager.findAuthenticationByAuthusername(email, WebDAVAuthManager.PROVIDER_WEBDAV_EMAIL));
Assert.assertNull(securityManager.findAuthenticationByAuthusername(email, WebDAVAuthManager.PROVIDER_WEBDAV_INSTITUTIONAL_EMAIL));
Assert.assertNull(securityManager.findAuthenticationByAuthusername(email, "OLAT"));
Assert.assertNotNull(securityManager.findAuthenticationByAuthusername(identity.getName(), "OLAT"));
Assert.assertNotNull(securityManager.findAuthenticationByAuthusername(email, "del-mail"));
}
use of org.olat.core.id.User in project openolat by klemens.
the class GetIdentitiesByPowerSearchTest method testGetIdentitiesByPowerSearch_multipleUserProperties.
@Test
public void testGetIdentitiesByPowerSearch_multipleUserProperties() {
String multi = "multi" + UUID.randomUUID().toString().replace("-", "");
String multiInst = "multiinst" + UUID.randomUUID().toString().replace("-", "");
String multiUsername = "multiPropUser-" + UUID.randomUUID();
User user = UserManager.getInstance().createUser("multipropuser", "multipropuser", multi + "@lustig.com");
user.setProperty(UserConstants.FIRSTNAME, "multi");
user.setProperty(UserConstants.LASTNAME, "prop");
user.setProperty(UserConstants.INSTITUTIONALNAME, "multiinst");
user.setProperty(UserConstants.INSTITUTIONALEMAIL, multiInst + "@lustig.com");
user.setProperty(UserConstants.INSTITUTIONALUSERIDENTIFIER, multiInst);
user.setProperty(UserConstants.CITY, "züri");
Identity identity = baseSecurityManager.createAndPersistIdentityAndUser(multiUsername, null, user, BaseSecurityModule.getDefaultAuthProviderIdentifier(), multiUsername, "ppp");
Assert.assertNotNull(identity);
// commit
dbInstance.commitAndCloseSession();
HashMap<String, String> userProperties = new HashMap<String, String>();
userProperties.put(UserConstants.FIRSTNAME, "multi");
List<Identity> results = baseSecurityManager.getIdentitiesByPowerSearch(null, userProperties, true, null, null, null, null, null, null, null, null);
sysoutResults(results);
Assert.assertTrue(results.contains(identity));
long countResults = baseSecurityManager.countIdentitiesByPowerSearch(null, userProperties, true, null, null, null, null, null, null, null, null);
Assert.assertEquals(results.size(), countResults);
userProperties = new HashMap<String, String>();
userProperties.put(UserConstants.FIRSTNAME, "multi");
userProperties.put(UserConstants.LASTNAME, "prop");
results = baseSecurityManager.getIdentitiesByPowerSearch(null, userProperties, true, null, null, null, null, null, null, null, null);
Assert.assertTrue(results.contains(identity));
userProperties = new HashMap<String, String>();
userProperties.put(UserConstants.FIRSTNAME, "multi");
userProperties.put(UserConstants.LASTNAME, "prop");
userProperties.put(UserConstants.INSTITUTIONALNAME, "multiinst");
results = baseSecurityManager.getIdentitiesByPowerSearch(null, userProperties, true, null, null, null, null, null, null, null, null);
Assert.assertTrue(results.contains(identity));
userProperties = new HashMap<String, String>();
userProperties.put(UserConstants.FIRSTNAME, "multi");
userProperties.put(UserConstants.LASTNAME, "prop");
userProperties.put(UserConstants.INSTITUTIONALNAME, "multiinst");
userProperties.put(UserConstants.INSTITUTIONALEMAIL, multiInst + "@lustig.com");
results = baseSecurityManager.getIdentitiesByPowerSearch(null, userProperties, true, null, null, null, null, null, null, null, null);
Assert.assertEquals(1, results.size());
Assert.assertTrue(results.contains(identity));
userProperties = new HashMap<String, String>();
userProperties.put(UserConstants.FIRSTNAME, "multi");
userProperties.put(UserConstants.LASTNAME, "prop");
userProperties.put(UserConstants.INSTITUTIONALNAME, "multiinst");
userProperties.put(UserConstants.INSTITUTIONALEMAIL, multiInst + "@lustig.com");
userProperties.put(UserConstants.INSTITUTIONALUSERIDENTIFIER, multiInst);
userProperties.put(UserConstants.CITY, "züri");
results = baseSecurityManager.getIdentitiesByPowerSearch(null, userProperties, true, null, null, null, null, null, null, null, null);
Assert.assertEquals(1, results.size());
Assert.assertTrue(results.contains(identity));
}
use of org.olat.core.id.User in project openolat by klemens.
the class QuestionItemDocumentFactory method createDocument.
public Document createDocument(SearchResourceContext searchResourceContext, QuestionItemFull item) {
OlatDocument oDocument = new OlatDocument();
oDocument.setId(item.getKey());
oDocument.setCreatedDate(item.getCreationDate());
oDocument.setLastChange(item.getLastModified());
oDocument.setTitle(item.getTitle());
oDocument.setDescription(item.getDescription());
oDocument.setResourceUrl(getResourceUrl(item.getKey()));
oDocument.setDocumentType(QItemDocument.TYPE);
oDocument.setCssIcon("o_qitem_icon");
oDocument.setParentContextType(searchResourceContext.getParentContextType());
oDocument.setParentContextName(searchResourceContext.getParentContextName());
// author
StringBuilder authorSb = new StringBuilder();
List<Identity> owners = qpoolService.getAuthors(item);
for (Identity owner : owners) {
User user = owner.getUser();
authorSb.append(user.getProperty(UserConstants.FIRSTNAME, null)).append(" ").append(user.getProperty(UserConstants.LASTNAME, null)).append(" ");
}
oDocument.setAuthor(authorSb.toString());
// add specific fields
Document document = oDocument.getLuceneDocument();
// content
QPoolSPI provider = qpoolModule.getQuestionPoolProvider(item.getFormat());
if (provider != null) {
String content = provider.extractTextContent(item);
if (content != null) {
addStringField(document, AbstractOlatDocument.CONTENT_FIELD_NAME, content, 0.8f);
}
}
if (item.getDescription() != null) {
addStringField(document, AbstractOlatDocument.CONTENT_FIELD_NAME, item.getDescription(), 1.0f);
}
// general fields
addStringField(document, QItemDocument.IDENTIFIER_FIELD, item.getIdentifier(), 1.0f);
addStringField(document, QItemDocument.MASTER_IDENTIFIER_FIELD, item.getMasterIdentifier(), 1.0f);
addTextField(document, QItemDocument.KEYWORDS_FIELD, item.getKeywords(), 2.0f);
addTextField(document, QItemDocument.COVERAGE_FIELD, item.getCoverage(), 2.0f);
addTextField(document, QItemDocument.ADD_INFOS_FIELD, item.getAdditionalInformations(), 2.0f);
addStringField(document, QItemDocument.LANGUAGE_FIELD, item.getLanguage(), 1.0f);
addTextField(document, QItemDocument.TOPIC_FIELD, item.getTopic(), 2.0f);
// educational
if (qpoolModule.isEducationalContextEnabled()) {
if (item.getEducationalContext() != null) {
String context = item.getEducationalContext().getLevel();
addStringField(document, QItemDocument.EDU_CONTEXT_FIELD, context, 1.0f);
}
}
// question
if (item.getType() != null) {
String itemType = item.getType().getType();
addStringField(document, QItemDocument.ITEM_TYPE_FIELD, itemType, 1.0f);
}
addStringField(document, QItemDocument.ASSESSMENT_TYPE_FIELD, item.getAssessmentType(), 1.0f);
// lifecycle
addStringField(document, QItemDocument.ITEM_VERSION_FIELD, item.getItemVersion(), 1.0f);
if (item.getQuestionStatus() != null) {
addStringField(document, QItemDocument.ITEM_STATUS_FIELD, item.getQuestionStatus().name(), 1.0f);
}
// rights
ResourceLicense license = licenseService.loadLicense(item);
if (license != null && license.getLicenseType() != null) {
String licenseKey = String.valueOf(license.getLicenseType().getKey());
addTextField(document, QItemDocument.LICENSE_TYPE_FIELD_NAME, licenseKey, 2.0f);
}
// technical
addTextField(document, QItemDocument.EDITOR_FIELD, item.getEditor(), 2.0f);
addStringField(document, QItemDocument.EDITOR_VERSION_FIELD, item.getEditorVersion(), 1.0f);
addStringField(document, QItemDocument.FORMAT_FIELD, item.getFormat(), 1.0f);
// save owners key
for (Identity owner : owners) {
document.add(new StringField(QItemDocument.OWNER_FIELD, owner.getKey().toString(), Field.Store.NO));
}
// link resources
List<OLATResource> resources = questionItemDao.getSharedResources(item);
for (OLATResource resource : resources) {
document.add(new StringField(QItemDocument.SHARE_FIELD, resource.getKey().toString(), Field.Store.NO));
}
// need pools
List<Pool> pools = poolDao.getPools(item);
for (Pool pool : pools) {
document.add(new StringField(QItemDocument.POOL_FIELD, pool.getKey().toString(), Field.Store.NO));
}
// need path
if (qpoolModule.isTaxonomyEnabled()) {
String path = item.getTaxonomicPath();
if (StringHelper.containsNonWhitespace(path)) {
for (StringTokenizer tokenizer = new StringTokenizer(path, "/"); tokenizer.hasMoreTokens(); ) {
String nextToken = tokenizer.nextToken();
document.add(new TextField(QItemDocument.TAXONOMIC_PATH_FIELD, nextToken, Field.Store.NO));
}
if (item instanceof QuestionItemImpl) {
Long key = ((QuestionItemImpl) item).getTaxonomyLevel().getKey();
TextField field = new TextField(QItemDocument.TAXONOMIC_FIELD, key.toString(), Field.Store.YES);
field.setBoost(3.0f);
document.add(field);
}
}
}
return document;
}
use of org.olat.core.id.User in project openolat by klemens.
the class ScormResultDetailsController method event.
@Override
protected void event(UserRequest ureq, Component source, Event event) {
if (source == resetButton) {
String title = translate("reset.title");
User user = assessedUserCourseEnv.getIdentityEnvironment().getIdentity().getUser();
String name = user.getProperty(UserConstants.FIRSTNAME, null) + " " + user.getProperty(UserConstants.LASTNAME, null);
String text = translate("reset.text", new String[] { name });
resetConfirmationBox = activateOkCancelDialog(ureq, title, text, resetConfirmationBox);
}
}
Aggregations