Search in sources :

Example 96 with User

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;
}
Also used : HomePageConfig(org.olat.user.HomePageConfig) User(org.olat.core.id.User) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) UserManager(org.olat.user.UserManager) IOException(java.io.IOException) File(java.io.File) FileInputStream(java.io.FileInputStream) UserPropertyHandler(org.olat.user.propertyhandlers.UserPropertyHandler)

Example 97 with User

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"));
}
Also used : User(org.olat.core.id.User) Identity(org.olat.core.id.Identity) Test(org.junit.Test)

Example 98 with User

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));
}
Also used : User(org.olat.core.id.User) HashMap(java.util.HashMap) Identity(org.olat.core.id.Identity) Test(org.junit.Test)

Example 99 with User

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;
}
Also used : User(org.olat.core.id.User) QuestionItemImpl(org.olat.modules.qpool.model.QuestionItemImpl) OLATResource(org.olat.resource.OLATResource) Document(org.apache.lucene.document.Document) AbstractOlatDocument(org.olat.search.model.AbstractOlatDocument) OlatDocument(org.olat.search.model.OlatDocument) QItemDocument(org.olat.modules.qpool.model.QItemDocument) ResourceLicense(org.olat.core.commons.services.license.ResourceLicense) AbstractOlatDocument(org.olat.search.model.AbstractOlatDocument) OlatDocument(org.olat.search.model.OlatDocument) StringTokenizer(java.util.StringTokenizer) QPoolSPI(org.olat.modules.qpool.QPoolSPI) StringField(org.apache.lucene.document.StringField) TextField(org.apache.lucene.document.TextField) Pool(org.olat.modules.qpool.Pool) Identity(org.olat.core.id.Identity)

Example 100 with User

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);
    }
}
Also used : User(org.olat.core.id.User)

Aggregations

User (org.olat.core.id.User)260 Identity (org.olat.core.id.Identity)126 Test (org.junit.Test)82 UserPropertyHandler (org.olat.user.propertyhandlers.UserPropertyHandler)52 HashMap (java.util.HashMap)28 Translator (org.olat.core.gui.translator.Translator)26 SecurityGroup (org.olat.basesecurity.SecurityGroup)20 Date (java.util.Date)18 ArrayList (java.util.ArrayList)16 Locale (java.util.Locale)16 FormItem (org.olat.core.gui.components.form.flexible.FormItem)16 File (java.io.File)14 VelocityContext (org.apache.velocity.VelocityContext)14 MailTemplate (org.olat.core.util.mail.MailTemplate)12 LDAPUser (org.olat.ldap.model.LDAPUser)12 UserManager (org.olat.user.UserManager)12 IOException (java.io.IOException)10 Map (java.util.Map)10 List (java.util.List)8 CloseableModalController (org.olat.core.gui.control.generic.closablewrapper.CloseableModalController)8