Search in sources :

Example 1 with User

use of org.olat.core.id.User in project OpenOLAT by OpenOLAT.

the class ResultsBuilder method getResDoc.

/**
 * Method getResDoc.
 *
 * @param ai The assessment instance
 * @param locale The users locale
 * @param identity
 * @return Document The XML document
 */
public Document getResDoc(AssessmentInstance ai, Locale locale, Identity identity) {
    AssessmentContext ac = ai.getAssessmentContext();
    DocumentFactory df = DocumentFactory.getInstance();
    Document res_doc = df.createDocument();
    Element root = df.createElement("qti_result_report");
    res_doc.setRootElement(root);
    Element result = root.addElement("result");
    Element extension_result = result.addElement("extension_result");
    String baseUrl = ai.getResolver().getStaticsBaseURI() + "/";
    // extension_result.
    for (int i = 0; i < ac.getSectionContextCount(); i++) {
        SectionContext sectionCtx = ac.getSectionContext(i);
        for (int j = 0; j < sectionCtx.getItemContextCount(); j++) {
            // OO-148
            // on some occasions this did throw an IllegalAddException
            // because el_item had already a parent.
            // make a clone for adding to extension_result
            Element el_item = (Element) sectionCtx.getItemContext(j).getEl_item().clone();
            recurseMattextForMediaURLFiltering(baseUrl, el_item);
            extension_result.add(el_item);
        }
    }
    // add ims cp id for any media references
    addStaticsPath(extension_result, ai);
    // add assessment_result
    // Add User information
    Element context = result.addElement("context");
    User user = identity.getUser();
    String name = user.getProperty(UserConstants.FIRSTNAME, locale) + " " + user.getProperty(UserConstants.LASTNAME, locale);
    String instId = user.getProperty(UserConstants.INSTITUTIONALUSERIDENTIFIER, locale);
    String instName = user.getProperty(UserConstants.INSTITUTIONALNAME, locale);
    if (instId == null)
        instId = "N/A";
    context.addElement("name").addText(name);
    String institution;
    if (instName == null) {
        institution = "N/A";
    } else {
        institution = instName;
    }
    // Add institutional identifier (e.g. Matrikelnummer)
    Element generic_identifier = context.addElement("generic_identifier");
    generic_identifier.addElement("type_label").addText(institution);
    generic_identifier.addElement("identifier_string").addText(instId);
    // Add start and stop date formatted as datetime
    Element beginDate = context.addElement("date");
    beginDate.addElement("type_label").addText("Start");
    beginDate.addElement("datetime").addText(Formatter.formatDatetime(new Date(ac.getTimeOfStart())));
    Element stopDate = context.addElement("date");
    stopDate.addElement("type_label").addText("Stop");
    stopDate.addElement("datetime").addText(Formatter.formatDatetime(new Date(ac.getTimeOfStop())));
    Element ares = result.addElement("assessment_result");
    ares.addAttribute("ident_ref", ac.getIdent());
    if (ac.getTitle() != null) {
        ares.addAttribute("asi_title", ac.getTitle());
    }
    // process assessment score
    Element a_score = ares.addElement("outcomes").addElement("score");
    a_score.addAttribute("varname", "SCORE");
    String strVal = StringHelper.formatFloat(ac.getScore(), 2);
    a_score.addElement("score_value").addText(strVal);
    strVal = ac.getMaxScore() == -1.0f ? "N/A" : StringHelper.formatFloat(ac.getMaxScore(), 2);
    a_score.addElement("score_max").addText(strVal);
    strVal = ac.getCutvalue() == -1.0f ? "N/A" : StringHelper.formatFloat(ac.getCutvalue(), 2);
    a_score.addElement("score_cut").addText(strVal);
    addElementText(ares, "duration", QTIHelper.getISODuration(ac.getDuration()));
    addElementText(ares, "num_sections", "" + ac.getSectionContextCount());
    addElementText(ares, "num_sections_presented", "0");
    addElementText(ares, "num_items", "" + ac.getItemContextCount());
    addElementText(ares, "num_items_presented", "" + ac.getItemsPresentedCount());
    addElementText(ares, "num_items_attempted", "" + ac.getItemsAttemptedCount());
    // add section_result
    int secnt = ac.getSectionContextCount();
    for (int i = 0; i < secnt; i++) {
        SectionContext secc = ac.getSectionContext(i);
        Element secres = ares.addElement("section_result");
        secres.addAttribute("ident_ref", secc.getIdent());
        if (secc.getTitle() != null) {
            secres.addAttribute("asi_title", secc.getTitle());
        }
        addElementText(secres, "duration", QTIHelper.getISODuration(secc.getDuration()));
        addElementText(secres, "num_items", "" + secc.getItemContextCount());
        addElementText(secres, "num_items_presented", "" + secc.getItemsPresentedCount());
        addElementText(secres, "num_items_attempted", "" + secc.getItemsAttemptedCount());
        // process section score
        Element sec_score = secres.addElement("outcomes").addElement("score");
        sec_score.addAttribute("varname", "SCORE");
        strVal = secc.getScore() == -1.0f ? "N/A" : "" + StringHelper.formatFloat(secc.getScore(), 2);
        sec_score.addElement("score_value").addText(strVal);
        strVal = secc.getMaxScore() == -1.0f ? "N/A" : "" + StringHelper.formatFloat(secc.getMaxScore(), 2);
        sec_score.addElement("score_max").addText(strVal);
        strVal = secc.getCutValue() == -1 ? "N/A" : "" + secc.getCutValue();
        sec_score.addElement("score_cut").addText(strVal);
        // iterate over all items in this section context
        List<ItemContext> itemsc = secc.getSectionItemContexts();
        for (Iterator<ItemContext> it_it = itemsc.iterator(); it_it.hasNext(); ) {
            ItemContext itemc = it_it.next();
            Element itres = secres.addElement("item_result");
            itres.addAttribute("ident_ref", itemc.getIdent());
            itres.addAttribute("asi_title", itemc.getEl_item().attributeValue("title"));
            Element it_duration = itres.addElement("duration");
            it_duration.addText(QTIHelper.getISODuration(itemc.getTimeSpent()));
            // process item score
            DecimalVariable scoreVar = (DecimalVariable) (itemc.getVariables().getSCOREVariable());
            Element it_score = itres.addElement("outcomes").addElement("score");
            it_score.addAttribute("varname", "SCORE");
            it_score.addElement("score_value").addText(StringHelper.formatFloat(scoreVar.getTruncatedValue(), 2));
            strVal = scoreVar.hasMinValue() ? "" + scoreVar.getMinValue() : "0.0";
            it_score.addElement("score_min").addText(strVal);
            strVal = scoreVar.hasMaxValue() ? "" + scoreVar.getMaxValue() : "N/A";
            it_score.addElement("score_max").addText(strVal);
            strVal = scoreVar.hasCutValue() ? "" + scoreVar.getCutValue() : "N/A";
            it_score.addElement("score_cut").addText(strVal);
            Element el_item = itemc.getEl_item();
            Map<String, Element> res_responsehash = new HashMap<>(3);
            // iterate over all responses of this item
            List resps = el_item.selectNodes(".//response_lid|.//response_xy|.//response_str|.//response_num|.//response_grp");
            for (Iterator it_resp = resps.iterator(); it_resp.hasNext(); ) {
                Element resp = (Element) it_resp.next();
                String ident = resp.attributeValue("ident");
                String rcardinality = resp.attributeValue("rcardinality");
                String rtiming = resp.attributeValue("rtiming");
                // add new response
                Element res_response = itres.addElement("response");
                res_response.addAttribute("ident_ref", ident);
                // enable lookup of
                res_responsehash.put(ident, res_response);
                // @identref of <response>
                // (needed with <varequal>
                // elements
                // add new response_form
                // <response_lid ident="MR01" rcardinality="Multiple" rtiming="No">
                Element res_responseform = res_response.addElement("response_form");
                res_responseform.addAttribute("cardinality", rcardinality);
                res_responseform.addAttribute("timing", rtiming);
                String respName = resp.getName();
                String type = respName.substring(respName.indexOf("_") + 1);
                res_responseform.addAttribute("response_type", type);
                // add user answer
                ItemInput itemInp = itemc.getItemInput();
                Translator trans = Util.createPackageTranslator(QTIModule.class, locale);
                if (itemInp == null) {
                    // user did not answer this question at all
                    res_response.addElement("response_value").addText(trans.translate("ResBuilder.NoAnswer"));
                } else {
                    List<String> userAnswer = itemInp.getAsList(ident);
                    if (userAnswer == null) {
                        // user did not answer this question at
                        // all
                        res_response.addElement("response_value").addText(trans.translate("ResBuilder.NoAnswer"));
                    } else {
                        // simply click send)
                        for (Iterator<String> it_ans = userAnswer.iterator(); it_ans.hasNext(); ) {
                            res_response.addElement("response_value").addText(it_ans.next());
                        }
                    }
                }
            }
            /*
				 * The simple element correct_response can only list correct elements,
				 * that is, no "or" or "and" elements may be in the conditionvar.
				 * Pragmatic solution: if condition has ors or ands, then put whole
				 * conditionvar into <extension_response> (proprietary), and for easier
				 * cases (just "varequal" "not" elements) use correct_response.
				 */
            // keys: respIdents, values: HashSet
            Map<String, Set<String>> corr_answers = new HashMap<>();
            // of correct answers for this
            // respIdent
            List respconds = el_item.selectNodes(".//respcondition");
            for (Iterator it_respc = respconds.iterator(); it_respc.hasNext(); ) {
                Element el_respc = (Element) it_respc.next();
                // check for add/set in setvar elements (check for single instance
                // only -> spec allows for multiple instances)
                Element el_setvar = (Element) el_respc.selectSingleNode(".//setvar");
                if (el_setvar == null)
                    continue;
                if (el_setvar.attributeValue("action").equals("Add") || el_setvar.attributeValue("action").equals("Set")) {
                    // This resrocessing gives points -> assume correct answer
                    float numPoints = 0;
                    try {
                        numPoints = Float.parseFloat(el_setvar.getTextTrim());
                    } catch (NumberFormatException nfe) {
                    // 
                    }
                    if (numPoints <= 0)
                        continue;
                    Element conditionvar = (Element) el_respc.selectSingleNode(".//conditionvar");
                    // there is an evaluation defined (a "resprocessing" element exists)
                    // if (xpath(count(.//varequal) + count(.//not) = count(.//*)) is
                    // true, then there are only "not" and "varequal" elements
                    XPath xCanHandle = DocumentHelper.createXPath("count(.//varequal) + count(.//not) = count(.//*)");
                    boolean canHandle = xCanHandle.matches(conditionvar);
                    if (!canHandle) {
                        // maybe we have <condvar> <and> <...>, try again
                        Element el_and = (Element) conditionvar.selectSingleNode("and");
                        if (el_and != null) {
                            canHandle = xCanHandle.matches(el_and);
                            if (canHandle) {
                                // simultate the el_and to be the conditionvar
                                conditionvar = el_and;
                            }
                        } else {
                            // and finally, maybe we have an <or> element ..
                            Element el_or = (Element) conditionvar.selectSingleNode("or");
                            if (el_or != null) {
                                canHandle = xCanHandle.matches(el_or);
                                if (canHandle) {
                                    // simultate the el_and to be the conditionvar
                                    conditionvar = el_or;
                                }
                            }
                        }
                    }
                    if (!canHandle) {
                        // qti res 1.2.1 can't handle it
                        Element condcopy = conditionvar.createCopy();
                        itres.addElement("extension_item_result").add(condcopy);
                    } else {
                        /*
							 * easy case: get all varequal directly under the conditionvar
							 * element and assume the "not" elements do not contain "not"
							 * elements again... <!ELEMENT response (qti_comment? ,
							 * response_form? , num_attempts? , response_value* ,
							 * extension_response?)> <!ELEMENT response_form
							 * (correct_response* , extension_responseform?)> <!ELEMENT
							 * correct_response (#PCDATA)>
							 */
                        List vareqs = conditionvar.selectNodes("./varequal");
                        for (Iterator it_vareq = vareqs.iterator(); it_vareq.hasNext(); ) {
                            /*
								 * get the identifier of the response, so that we can attach the
								 * <correct_response> to the right <response> element quote: ims
								 * qti asi xml binding :3.6.23.1 <varequal> Element: respident
								 * (required). The identifier of the corresponding
								 * <response_lid>, <response_xy>, etc. element (this was
								 * assigned using its ident attribute).
								 */
                            Element vareq = (Element) it_vareq.next();
                            String respIdent = vareq.attributeValue("respident");
                            Set<String> respIdent_corr_answers = corr_answers.get(respIdent);
                            if (respIdent_corr_answers == null)
                                respIdent_corr_answers = new HashSet<String>(3);
                            respIdent_corr_answers.add(vareq.getText());
                            corr_answers.put(respIdent, respIdent_corr_answers);
                        }
                    // for varequal
                    }
                // else varequal
                }
            // add/set setvar
            }
            // for resprocessing
            Set<String> resp_ids = corr_answers.keySet();
            for (Iterator<String> idents = resp_ids.iterator(); idents.hasNext(); ) {
                String respIdent = idents.next();
                Set<String> respIdent_corr_answers = corr_answers.get(respIdent);
                Element res_response = res_responsehash.get(respIdent);
                Element res_respform = res_response.element("response_form");
                for (Iterator<String> iter = respIdent_corr_answers.iterator(); iter.hasNext(); ) {
                    String answer = iter.next();
                    res_respform.addElement("correct_response").addText(answer);
                }
            }
        }
    // for response_xy
    }
    return res_doc;
}
Also used : SectionContext(org.olat.ims.qti.container.SectionContext) User(org.olat.core.id.User) HashSet(java.util.HashSet) Set(java.util.Set) HashMap(java.util.HashMap) Element(org.dom4j.Element) Document(org.dom4j.Document) ItemInput(org.olat.ims.qti.container.ItemInput) DecimalVariable(org.olat.ims.qti.container.DecimalVariable) Translator(org.olat.core.gui.translator.Translator) Iterator(java.util.Iterator) List(java.util.List) HashSet(java.util.HashSet) XPath(org.dom4j.XPath) Date(java.util.Date) AssessmentContext(org.olat.ims.qti.container.AssessmentContext) ItemContext(org.olat.ims.qti.container.ItemContext) DocumentFactory(org.dom4j.DocumentFactory)

Example 2 with User

use of org.olat.core.id.User in project OpenOLAT by OpenOLAT.

the class LDAPLoginTest method testCronSync.

@Test
@Ignore
public void testCronSync() throws Exception {
    Assume.assumeTrue(ldapLoginModule.isLDAPEnabled());
    LdapContext ctx;
    List<LDAPUser> ldapUserList;
    List<Attributes> newLdapUserList;
    Map<Identity, Map<String, String>> changedMapIdenityMap;
    List<Identity> deletedUserList;
    LDAPError errors = new LDAPError();
    // find user changed after 2010,01,09,00,00
    ctx = ldapManager.bindSystem();
    Calendar cal = Calendar.getInstance();
    cal.set(2010, 0, 10, 0, 0, 0);
    Date syncDate = cal.getTime();
    ldapUserList = ldapDao.getUserAttributesModifiedSince(syncDate, ctx);
    assertEquals(1, ldapUserList.size());
    // find all users
    syncDate = null;
    ldapUserList = ldapDao.getUserAttributesModifiedSince(syncDate, ctx);
    assertEquals(6, ldapUserList.size());
    // prepare create- and sync-Lists for each user from defined syncTime
    Identity idenity;
    Map<String, String> changedAttrMap;
    newLdapUserList = new LinkedList<Attributes>();
    changedMapIdenityMap = new HashMap<Identity, Map<String, String>>();
    for (int i = 0; i < ldapUserList.size(); i++) {
        Attributes userAttrs = ldapUserList.get(i).getAttributes();
        String user = getAttributeValue(userAttrs.get(syncConfiguration.getOlatPropertyToLdapAttribute("userID")));
        idenity = ldapManager.findIdentityByLdapAuthentication(userAttrs, errors);
        if (idenity != null) {
            changedAttrMap = ldapManager.prepareUserPropertyForSync(userAttrs, idenity);
            if (changedAttrMap != null)
                changedMapIdenityMap.put(idenity, changedAttrMap);
        } else {
            if (errors.isEmpty()) {
                String[] reqAttrs = syncConfiguration.checkRequestAttributes(userAttrs);
                if (reqAttrs == null)
                    newLdapUserList.add(userAttrs);
                else
                    System.out.println("Cannot create User " + user + " required Attributes are missing");
            } else
                System.out.println(errors.get());
        }
    }
    // create Users in LDAP Group only existing in OLAT
    User user1 = UserManager.getInstance().createUser("hansi", "hürlima", "hansi@hansli.com");
    Identity identity1 = securityManager.createAndPersistIdentityAndUser("hansi", null, user1, "LDAP", "hansi");
    SecurityGroup secGroup1 = securityManager.findSecurityGroupByName(LDAPConstants.SECURITY_GROUP_LDAP);
    securityManager.addIdentityToSecurityGroup(identity1, secGroup1);
    user1 = UserManager.getInstance().createUser("chaspi", "meier", "chaspi@hansli.com");
    identity1 = securityManager.createAndPersistIdentityAndUser("chaspi", null, user1, "LDAP", "chaspi");
    securityManager.addIdentityToSecurityGroup(identity1, secGroup1);
    // create User to Delete List
    deletedUserList = ldapManager.getIdentitysDeletedInLdap(ctx);
    assertEquals(4, (deletedUserList.size()));
    // sync users
    Iterator<Identity> itrIdent = changedMapIdenityMap.keySet().iterator();
    while (itrIdent.hasNext()) {
        Identity ident = itrIdent.next();
        ldapManager.syncUser(changedMapIdenityMap.get(ident), ident);
    }
    // create all users
    for (int i = 0; i < newLdapUserList.size(); i++) {
        ldapManager.createAndPersistUser(newLdapUserList.get(i));
    }
    // delete all users
    ldapManager.deletIdentities(deletedUserList);
    // check if users are deleted
    deletedUserList = ldapManager.getIdentitysDeletedInLdap(ctx);
    assertEquals(0, (deletedUserList.size()));
}
Also used : LDAPUser(org.olat.ldap.model.LDAPUser) User(org.olat.core.id.User) Calendar(java.util.Calendar) Attributes(javax.naming.directory.Attributes) LDAPUser(org.olat.ldap.model.LDAPUser) SecurityGroup(org.olat.basesecurity.SecurityGroup) Date(java.util.Date) Identity(org.olat.core.id.Identity) HashMap(java.util.HashMap) Map(java.util.Map) LdapContext(javax.naming.ldap.LdapContext) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 3 with User

use of org.olat.core.id.User in project OpenOLAT by OpenOLAT.

the class LDAPLoginTest method testIdentityDeletedInLDAP.

@Test
@Ignore
public void testIdentityDeletedInLDAP() {
    Assume.assumeTrue(ldapLoginModule.isLDAPEnabled());
    List<Identity> deletList;
    // should be empty
    LdapContext ctx = ldapManager.bindSystem();
    deletList = ldapManager.getIdentitysDeletedInLdap(ctx);
    assertEquals(0, (deletList.size()));
    // simulate closed session (user adding from startup job)
    DBFactory.getInstance().intermediateCommit();
    // create some users in LDAPSecurityGroup
    User user = UserManager.getInstance().createUser("grollia", "wa", "gorrila@olat.org");
    Identity identity = securityManager.createAndPersistIdentityAndUser("gorilla", null, user, "LDAP", "gorrila");
    SecurityGroup secGroup1 = securityManager.findSecurityGroupByName(LDAPConstants.SECURITY_GROUP_LDAP);
    securityManager.addIdentityToSecurityGroup(identity, secGroup1);
    user = UserManager.getInstance().createUser("wer", "immer", "immer@olat.org");
    identity = securityManager.createAndPersistIdentityAndUser("der", null, user, "LDAP", "der");
    securityManager.addIdentityToSecurityGroup(identity, secGroup1);
    user = UserManager.getInstance().createUser("die", "da", "chaspi@olat.org");
    identity = securityManager.createAndPersistIdentityAndUser("das", null, user, "LDAP", "das");
    securityManager.addIdentityToSecurityGroup(identity, secGroup1);
    // simulate closed session
    DBFactory.getInstance().intermediateCommit();
    // 3 members in LDAP group but not existing in OLAT
    deletList = ldapManager.getIdentitysDeletedInLdap(ctx);
    assertEquals(3, (deletList.size()));
    // delete user in OLAT
    securityManager.removeIdentityFromSecurityGroup(identity, secGroup1);
    UserDeletionManager.getInstance().deleteIdentity(identity);
    // simulate closed session
    DBFactory.getInstance().intermediateCommit();
    // 2 members in LDAP group but not existing in OLAT
    deletList = ldapManager.getIdentitysDeletedInLdap(ctx);
    assertEquals(2, (deletList.size()));
}
Also used : LDAPUser(org.olat.ldap.model.LDAPUser) User(org.olat.core.id.User) Identity(org.olat.core.id.Identity) SecurityGroup(org.olat.basesecurity.SecurityGroup) LdapContext(javax.naming.ldap.LdapContext) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 4 with User

use of org.olat.core.id.User in project OpenOLAT by OpenOLAT.

the class MailTest method testMailAttachments.

/**
 * Test for the mail template and the context variable methods
 */
@Test
public void testMailAttachments() {
    String subject = "Subject: Hello $firstname with attachment";
    String body = "Body: \n\n Hey $login, here's a file for you: ";
    // some attachemnts
    File[] attachments = new File[1];
    File file1;
    try {
        System.out.println("MailTest.testMailAttachments Url1=" + MailTest.class.getResource("MailTest.class"));
        file1 = new File(MailTest.class.getResource("MailTest.class").toURI());
        attachments[0] = file1;
    // TODO: cg Properties file is in olat_core.jar and not be lookup as resource (jar:file:...)
    // System.out.println("MailTest.testMailAttachments Url2=" + MailTest.class.getResource("_i18n/LocalStrings_de.properties") );
    // file2 = new File(MailTest.class.getResource("_i18n/LocalStrings_de.properties").toURI());
    // attachments[1] = file2;
    } catch (URISyntaxException e) {
        fail("ups, can't get testfiles from local path: MailTest.class and _i18n/LocalStrings_de.properties");
    }
    MailTemplate template = new MailTemplate(subject, body, attachments) {

        @Override
        public void putVariablesInMailContext(VelocityContext context, Identity identity) {
            // Put user variables
            User user = identity.getUser();
            context.put("firstname", user.getProperty(UserConstants.FIRSTNAME, null));
            context.put("login", identity.getName());
        }
    };
    // some recipients data
    List<Identity> recipients = new ArrayList<Identity>();
    recipients.add(id1);
    MailerResult result = new MailerResult();
    result = sendMailAsSeparateMails(null, recipients, null, template, id2, null);
    assertEquals(MailerResult.OK, result.getReturnCode());
}
Also used : User(org.olat.core.id.User) MailerResult(org.olat.core.util.mail.MailerResult) VelocityContext(org.apache.velocity.VelocityContext) MailTemplate(org.olat.core.util.mail.MailTemplate) ArrayList(java.util.ArrayList) URISyntaxException(java.net.URISyntaxException) Identity(org.olat.core.id.Identity) File(java.io.File) Test(org.junit.Test)

Example 5 with User

use of org.olat.core.id.User in project OpenOLAT by OpenOLAT.

the class OAuthRegistrationController method formOK.

@Override
protected void formOK(UserRequest ureq) {
    String lang = langEl.getSelectedKey();
    String username = usernameEl.getValue();
    OAuthUser oauthUser = registration.getOauthUser();
    User newUser = userManager.createUser(null, null, null);
    for (UserPropertyHandler userPropertyHandler : userPropertyHandlers) {
        FormItem propertyItem = this.flc.getFormComponent(userPropertyHandler.getName());
        userPropertyHandler.updateUserFromFormItem(newUser, propertyItem);
    }
    // Init preferences
    newUser.getPreferences().setLanguage(lang);
    newUser.getPreferences().setInformSessionTimeout(true);
    String id;
    if (StringHelper.containsNonWhitespace(oauthUser.getId())) {
        id = oauthUser.getId();
    } else if (StringHelper.containsNonWhitespace(oauthUser.getEmail())) {
        id = oauthUser.getEmail();
    } else {
        id = username;
    }
    authenticatedIdentity = securityManager.createAndPersistIdentityAndUser(username, null, newUser, registration.getAuthProvider(), id, null);
    // Add user to system users group
    SecurityGroup olatuserGroup = securityManager.findSecurityGroupByName(Constants.GROUP_OLATUSERS);
    securityManager.addIdentityToSecurityGroup(authenticatedIdentity, olatuserGroup);
    // open disclaimer
    removeAsListenerAndDispose(disclaimerController);
    disclaimerController = new DisclaimerController(ureq, getWindowControl());
    listenTo(disclaimerController);
    cmc = new CloseableModalController(getWindowControl(), translate("close"), disclaimerController.getInitialComponent(), true, translate("disclaimer.title"));
    cmc.activate();
    listenTo(cmc);
}
Also used : OAuthUser(org.olat.login.oauth.model.OAuthUser) User(org.olat.core.id.User) DisclaimerController(org.olat.registration.DisclaimerController) OAuthUser(org.olat.login.oauth.model.OAuthUser) FormItem(org.olat.core.gui.components.form.flexible.FormItem) CloseableModalController(org.olat.core.gui.control.generic.closablewrapper.CloseableModalController) SecurityGroup(org.olat.basesecurity.SecurityGroup) UserPropertyHandler(org.olat.user.propertyhandlers.UserPropertyHandler)

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