ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilStartUpGUI Class Reference

StartUp GUI class. More...

+ Collaboration diagram for ilStartUpGUI:

Public Member Functions

 ilStartUpGUI ()
 constructor More...
 
executeCommand ()
 execute command More...
 
 jumpToRegistration ()
 jump to registration gui More...
 
 jumpToPasswordAssistance ()
 jump to password assistance More...
 
 showLogin ()
 show login More...
 
 migrateAccount ()
 migrate account More...
 
 showLogout ()
 show logout screen More...
 
 showUserMappingSelection ()
 Show user selection screen, if external account could not be mapped to an ILIAS account, but the provided e-mail address is known. More...
 
 showClientList ()
 show client list More...
 
 showNoCookiesScreen ()
 show help screen, if cookies are disabled More...
 
 processIndexPHP ()
 process index.php More...
 
 _checkGoto ($a_target)
 
 confirmRegistration ()
 

Protected Member Functions

 showCodeForm ($a_username=null, $a_form=null)
 
 initCodeForm ($a_username)
 
 processCode ()
 
 showLoginForm ($page_editor_html)
 Show login form @global ilSetting $ilSetting. More...
 
 showLoginInformation ($page_editor_html)
 Show login information. More...
 
 showCASLoginForm ($page_editor_html)
 Show cas login @global ilSetting $ilSetting. More...
 
 showShibbolethLoginForm ($page_editor_html)
 Show shibboleth login form. More...
 
 substituteLoginPageElements ($tpl, $page_editor_html, $element_html, $placeholder, $fallback_tplvar)
 Substitute login page elements. More...
 
 getLoginPageEditorHTML ()
 Get HTML of ILIAS login page editor. More...
 
 showRegistrationLinks ($page_editor_html)
 Show registration, password forgotten, client slection links @global ilLanguage $lng @global ilSetting $ilSetting @global <type> $ilIliasIniFile. More...
 
 purgePlaceholders ($page_editor_html)
 Purge page editor html from unused placeholders. More...
 
 getAcceptance ()
 Get terms of service. More...
 
 showOpenIdLoginForm ($page_editor_html)
 Show openid login if enabled. More...
 

Static Protected Member Functions

static getLanguageSelection ()
 language selection list More...
 

Detailed Description

StartUp GUI class.

Handles Login and Registration.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$ @ilCtrl_Calls ilStartUpGUI: ilAccountRegistrationGUI, ilPasswordAssistanceGUI, ilLoginPageGUI

Definition at line 15 of file class.ilStartUpGUI.php.

Member Function Documentation

◆ _checkGoto()

ilStartUpGUI::_checkGoto (   $a_target)

Definition at line 1499 of file class.ilStartUpGUI.php.

1500 {
1501 global $objDefinition, $ilPluginAdmin, $ilUser;
1502
1503 if (is_object($ilPluginAdmin))
1504 {
1505 // get user interface plugins
1506 $pl_names = $ilPluginAdmin->getActivePluginsForSlot(IL_COMP_SERVICE, "UIComponent", "uihk");
1507
1508 // search
1509 foreach ($pl_names as $pl)
1510 {
1511 $ui_plugin = ilPluginAdmin::getPluginObject(IL_COMP_SERVICE, "UIComponent", "uihk", $pl);
1512 $gui_class = $ui_plugin->getUIClassInstance();
1513 $resp = $gui_class->checkGotoHook($a_target);
1514 if ($resp["target"] !== false)
1515 {
1516 $a_target = $resp["target"];
1517 break;
1518 }
1519 }
1520 }
1521
1522 if ($a_target == "")
1523 {
1524 return false;
1525 }
1526
1527 $t_arr = explode("_", $a_target);
1528 $type = $t_arr[0];
1529
1530 if ($type == "git")
1531 {
1532 $type = "glo";
1533 }
1534
1535 if ($type == "pg" | $type == "st")
1536 {
1537 $type = "lm";
1538 }
1539
1540 $class = $objDefinition->getClassName($type);
1541 if ($class == "")
1542 {
1543 return false;
1544 }
1545
1546 $location = $objDefinition->getLocation($type);
1547 $full_class = "ilObj".$class."Access";
1548 include_once($location."/class.".$full_class.".php");
1549
1550 $ret = call_user_func(array($full_class, "_checkGoto"), $a_target);
1551
1552 // if no access and repository object => check for parent course/group
1553 if(!$ret &&
1554 !stristr($a_target, "_wsp") &&
1555 $ilUser->getId() != ANONYMOUS_USER_ID && // #10637
1556 !$objDefinition->isAdministrationObject($type) &&
1557 $objDefinition->isRBACObject($type) &&
1558 $t_arr[1])
1559 {
1560 global $tree, $rbacsystem, $ilAccess;
1561
1562 // original type "pg" => pg_<page_id>[_<ref_id>]
1563 if($t_arr[0] == "pg")
1564 {
1565 if(isset($t_arr[2]))
1566 {
1567 $ref_id = $t_arr[2];
1568 }
1569 else
1570 {
1571 $lm_id = ilLMObject::_lookupContObjID($t_arr[1]);
1573 if($ref_id)
1574 {
1575 $ref_id = array_shift($ref_id);
1576 }
1577 }
1578 }
1579 else
1580 {
1581 $ref_id = $t_arr[1];
1582 }
1583
1584 include_once "Services/Membership/classes/class.ilParticipants.php";
1585 $block_obj = array();
1586
1587 // walk path to find parent container
1588 $path = $tree->getPathId($ref_id);
1589 array_pop($path);
1590 foreach($path as $path_ref_id)
1591 {
1592 $redirect_infopage = false;
1593 $add_member_role = false;
1594
1595 $ptype = ilObject::_lookupType($path_ref_id, true);
1596 $pobj_id = ilObject::_lookupObjId($path_ref_id);
1597
1598 // core checks: timings/object-specific
1599 if(!$ilAccess->doActivationCheck("read", "", $path_ref_id, $ilUser->getId(), $pobj_id, $ptype) ||
1600 !$ilAccess->doStatusCheck("read", "", $path_ref_id, $ilUser->getId(), $pobj_id, $ptype))
1601 {
1602 // object in path is inaccessible - aborting
1603 return false;
1604 }
1605 else if($ptype == "crs")
1606 {
1607 // check if already participant
1608 include_once "Modules/Course/classes/class.ilCourseParticipant.php";
1609 $participants = new ilCourseParticipant($pobj_id, $ilUser->getId());
1610 if(!$participants->isAssigned())
1611 {
1612 // subscription currently possible?
1613 include_once "Modules/Course/classes/class.ilObjCourse.php";
1614 if(ilObjCourse::_isActivated($pobj_id) &&
1616 {
1617 $block_obj[] = $path_ref_id;
1618 $add_member_role = true;
1619 }
1620 else
1621 {
1622 $redirect_infopage = true;
1623 }
1624 }
1625 }
1626 else if($ptype == "grp")
1627 {
1628 // check if already participant
1629 include_once "Modules/Group/classes/class.ilGroupParticipants.php";
1630 if(!ilGroupParticipants::_isParticipant($path_ref_id, $ilUser->getId()))
1631 {
1632 // subscription currently possible?
1633 include_once "Modules/Group/classes/class.ilObjGroup.php";
1634 $group_obj = new ilObjGroup($path_ref_id);
1635 if($group_obj->isRegistrationEnabled())
1636 {
1637 $block_obj[] = $path_ref_id;
1638 $add_member_role = true;
1639 }
1640 else
1641 {
1642 $redirect_infopage = true;
1643 }
1644 }
1645 }
1646
1647 // add members roles for all "blocking" objects
1648 if($add_member_role)
1649 {
1650 // cannot join? goto will never work, so redirect to current object
1651 $rbacsystem->resetPACache($ilUser->getId(), $path_ref_id);
1652 if(!$rbacsystem->checkAccess("join", $path_ref_id))
1653 {
1654 $redirect_infopage = true;
1655 }
1656 else
1657 {
1658 $rbacsystem->addTemporaryRole($ilUser->getId(),
1660 }
1661 }
1662
1663 // redirect to infopage of 1st blocking object in path
1664 if($redirect_infopage)
1665 {
1666 if($rbacsystem->checkAccess("visible", $path_ref_id))
1667 {
1668 ilUtil::redirect("ilias.php?baseClass=ilRepositoryGUI".
1669 "&ref_id=".$path_ref_id."&cmd=infoScreen");
1670 }
1671 else
1672 {
1673 return false;
1674 }
1675 }
1676 }
1677
1678 // check if access will be possible with all (possible) member roles added
1679 $rbacsystem->resetPACache($ilUser->getId(), $ref_id);
1680 if($rbacsystem->checkAccess("read", $ref_id) && sizeof($block_obj)) // #12128
1681 {
1682 // this won't work with lm-pages (see above)
1683 // include_once "Services/Link/classes/class.ilLink.php";
1684 // $_SESSION["pending_goto"] = ilLink::_getStaticLink($ref_id, $type);
1685
1686 // keep original target
1687 $_SESSION["pending_goto"] = "goto.php?target=".$a_target;
1688
1689 // redirect to 1st non-member object in path
1690 ilUtil::redirect("ilias.php?baseClass=ilRepositoryGUI".
1691 "&ref_id=".array_shift($block_obj));
1692 }
1693 }
1694
1695 return $ret;
1696 }
$location
Definition: buildRTE.php:44
$_SESSION["AccountId"]
const IL_COMP_SERVICE
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
_lookupContObjID($a_id)
get learning module / digibook id for lm object
_isActivated($a_obj_id)
Is activated.
_registrationEnabled($a_obj_id)
Registration enabled? Method is in Access class, since it is needed by Access/ListGUI.
Class ilObjGroup.
static _lookupObjId($a_id)
static _getAllReferences($a_id)
get all reference ids of object
static _lookupType($a_id, $a_reference=false)
lookup object type
static getDefaultMemberRole($a_ref_id)
static getPluginObject($a_ctype, $a_cname, $a_slot_id, $a_pname)
Get Plugin Object.
static redirect($a_script)
http redirect to other script
$ref_id
Definition: sahs_server.php:39
$path
Definition: index.php:22
global $ilUser
Definition: imgupload.php:15

References $_SESSION, $ilUser, $location, $path, $ref_id, $ret, ilObject\_getAllReferences(), ilObjCourse\_isActivated(), ilGroupParticipants\_isParticipant(), ilLMObject\_lookupContObjID(), ilObject\_lookupObjId(), ilObject\_lookupType(), ilObjCourse\_registrationEnabled(), ilParticipants\getDefaultMemberRole(), ilPluginAdmin\getPluginObject(), IL_COMP_SERVICE, and ilUtil\redirect().

+ Here is the call graph for this function:

◆ confirmRegistration()

ilStartUpGUI::confirmRegistration ( )

Definition at line 1698 of file class.ilStartUpGUI.php.

1699 {
1700 global $lng, $ilias, $ilLog;
1701
1702 ilUtil::setCookie('iltest', 'cookie', false);
1703
1704 if(!isset($_GET['rh']) || !strlen(trim($_GET['rh'])))
1705 {
1706 ilUtil::redirect('./login.php?cmd=force_login&reg_confirmation_msg=reg_confirmation_hash_not_passed');
1707 }
1708
1709 try
1710 {
1711 require_once 'Services/Registration/classes/class.ilRegistrationSettings.php';
1712 $oRegSettings = new ilRegistrationSettings();
1713
1714 $usr_id = ilObjUser::_verifyRegistrationHash(trim($_GET['rh']));
1715 $oUser = ilObjectFactory::getInstanceByObjId($usr_id);
1716 $oUser->setActive(true);
1717 if($oRegSettings->passwordGenerationEnabled())
1718 {
1719 $passwd = ilUtil::generatePasswords(1);
1720 $password = $passwd[0];
1721 $oUser->setPasswd($password, IL_PASSWD_PLAIN);
1722 $oUser->setLastPasswordChangeTS( time() );
1723 }
1724 $oUser->update();
1725
1726 $usr_lang = $oUser->getPref('language');
1727
1728 if($lng->getLangKey() != $usr_lang)
1729 {
1730 $lng = new ilLanguage($usr_lang);
1731 }
1732
1733 $target = $oUser->getPref('reg_target');
1734 if(strlen($target) > 0)
1735 {
1736 $_GET['target'] = $target;
1737 }
1738
1739 // send email
1740 // try individual account mail in user administration
1741 include_once("Services/Mail/classes/class.ilAccountMail.php");
1742 include_once './Services/User/classes/class.ilObjUserFolder.php';
1743 $amail = ilObjUserFolder::_lookupNewAccountMail($usr_lang);
1744 if (trim($amail["body"]) != "" && trim($amail["subject"]) != "")
1745 {
1746 $acc_mail = new ilAccountMail();
1747 $acc_mail->setUser($oUser);
1748 if($oRegSettings->passwordGenerationEnabled())
1749 {
1750 $acc_mail->setUserPassword($password);
1751 }
1752 $acc_mail->send();
1753 }
1754 else // do default mail
1755 {
1756 include_once 'Services/Mail/classes/class.ilMail.php';
1757 $mail_obj = new ilMail(ANONYMOUS_USER_ID);
1758
1759 // mail subject
1760 $subject = $lng->txt("reg_mail_subject");
1761
1762 // mail body
1763 $body = $lng->txt("reg_mail_body_salutation")." ".$oUser->getFullname().",\n\n".
1764 $lng->txt("reg_mail_body_text1")."\n\n".
1765 $lng->txt("reg_mail_body_text2")."\n".
1766 ILIAS_HTTP_PATH."/login.php?client_id=".CLIENT_ID."\n";
1767 $body .= $lng->txt("login").": ".$oUser->getLogin()."\n";
1768
1769 if($oRegSettings->passwordGenerationEnabled())
1770 {
1771 $body.= $lng->txt("passwd").": ".$password."\n";
1772 }
1773
1774 $body.= "\n";
1775 $body.= $lng->txt('reg_mail_body_forgot_password_info')."\n";
1776
1777 $body.= "\n";
1778
1779 $body .= ($lng->txt("reg_mail_body_text3")."\n\r");
1780 $body .= $oUser->getProfileAsString($lng);
1781 $mail_obj->enableSoap(false);
1782 $mail_obj->appendInstallationSignature(true);
1783 $mail_obj->sendMail($oUser->getEmail(), '', '',
1784 $subject,
1785 $body,
1786 array(), array('normal'));
1787 }
1788
1789 ilUtil::redirect('./login.php?cmd=force_login&reg_confirmation_msg=reg_account_confirmation_successful&lang='.$usr_lang);
1790 }
1792 {
1793 include_once 'Services/WebServices/SOAP/classes/class.ilSoapClient.php';
1794 $soap_client = new ilSoapClient();
1795 $soap_client->setResponseTimeout(1);
1796 $soap_client->enableWSDL(true);
1797 $soap_client->init();
1798
1799 $ilLog->write(__METHOD__.': Triggered soap call (background process) for deletion of inactive user objects with expired confirmation hash values (dual opt in) ...');
1800
1801 $soap_client->call
1802 (
1803 'deleteExpiredDualOptInUserObjects',
1804 array
1805 (
1806 $_COOKIE['PHPSESSID'].'::'.$_COOKIE['ilClientId'], // session id and client id, not used for checking access -> not possible for anonymous
1807 $exception->getCode() // user id
1808 )
1809 );
1810
1811 ilUtil::redirect('./login.php?cmd=force_login&reg_confirmation_msg='.$exception->getMessage()."&lang=".$usr_lang);
1812 }
1813 catch(ilRegistrationHashNotFoundException $exception)
1814 {
1815 ilUtil::redirect('./login.php?cmd=force_login&reg_confirmation_msg='.$exception->getMessage()."&lang=".$usr_lang);
1816 }
1817 }
$_GET["client_id"]
const IL_PASSWD_PLAIN
Class ilAccountMail.
language handling
Class Mail this class handles base functions for mail handling.
static _verifyRegistrationHash($a_hash)
Verifies a registration hash.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
Class for user related exception handling in ILIAS.
Class for user related exception handling in ILIAS.
Class ilObjAuthSettingsGUI.
static setCookie($a_cookie_name, $a_cookie_value='', $a_also_set_super_global=true, $a_set_cookie_invalid=false)
static generatePasswords($a_number)
Generate a number of passwords.
$_COOKIE["ilClientId"]
Definition: cron.php:11
global $lng
Definition: privfeed.php:40

References $_COOKIE, $_GET, $ilLog, $lng, ilObjUserFolder\_lookupNewAccountMail(), ilObjUser\_verifyRegistrationHash(), ilUtil\generatePasswords(), ilObjectFactory\getInstanceByObjId(), IL_PASSWD_PLAIN, ilUtil\redirect(), and ilUtil\setCookie().

+ Here is the call graph for this function:

◆ executeCommand()

& ilStartUpGUI::executeCommand ( )

execute command

Definition at line 33 of file class.ilStartUpGUI.php.

34 {
35 global $ilLog;
36
37 $cmd = $this->ctrl->getCmd("processIndexPHP",array('processIndexPHP','showLogin'));
38 $next_class = $this->ctrl->getNextClass($this);
39
40 switch($next_class)
41 {
42 case 'ilLoginPageGUI':
43 break;
44
45 case "ilaccountregistrationgui":
46 require_once("Services/Registration/classes/class.ilAccountRegistrationGUI.php");
47 return $this->ctrl->forwardCommand(new ilAccountRegistrationGUI());
48
49 case "ilpasswordassistancegui":
50 require_once("Services/Init/classes/class.ilPasswordAssistanceGUI.php");
51 return $this->ctrl->forwardCommand(new ilPasswordAssistanceGUI());
52
53 default:
54 return $this->$cmd();
55 }
56 }
Class ilAccountRegistrationGUI.
Password assistance facility for users who have forgotten their password or for users for whom no pas...
$cmd
Definition: sahs_server.php:35

References $cmd, and $ilLog.

Referenced by jumpToPasswordAssistance(), and jumpToRegistration().

+ Here is the caller graph for this function:

◆ getAcceptance()

ilStartUpGUI::getAcceptance ( )
protected

Get terms of service.

Definition at line 1350 of file class.ilStartUpGUI.php.

1351 {
1352 $this->showTermsOfService();
1353 }

◆ getLanguageSelection()

static ilStartUpGUI::getLanguageSelection ( )
staticprotected

language selection list

Returns
string ilGroupedList

Definition at line 1959 of file class.ilStartUpGUI.php.

1960 {
1961 include_once("./Services/MainMenu/classes/class.ilMainMenuGUI.php");
1963 }
static getLanguageSelection($a_in_topbar=false)

References ilMainMenuGUI\getLanguageSelection().

+ Here is the call graph for this function:

◆ getLoginPageEditorHTML()

ilStartUpGUI::getLoginPageEditorHTML ( )
protected

Get HTML of ILIAS login page editor.

Returns
string html

Definition at line 732 of file class.ilStartUpGUI.php.

733 {
734 global $lng, $tpl;
735
736 include_once './Services/Authentication/classes/class.ilAuthLoginPageEditorSettings.php';
738 $active_lang = $lpe->getIliasEditorLanguage($lng->getLangKey());
739
740 if(!$active_lang)
741 {
742 return '';
743 }
744
745 // if page does not exist, return nothing
746 include_once './Services/COPage/classes/class.ilPageUtil.php';
747 if(!ilPageUtil::_existsAndNotEmpty('auth', ilLanguage::lookupId($active_lang)))
748 {
749 return '';
750 }
751
752 include_once './Services/Authentication/classes/class.ilLoginPage.php';
753 include_once './Services/Authentication/classes/class.ilLoginPageGUI.php';
754
755 include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
756 $tpl->setVariable("LOCATION_CONTENT_STYLESHEET",ilObjStyleSheet::getContentStylePath(0));
757 $tpl->setCurrentBlock("SyntaxStyle");
758 $tpl->setVariable("LOCATION_SYNTAX_STYLESHEET",ilObjStyleSheet::getSyntaxStylePath());
759 $tpl->parseCurrentBlock();
760
761 // get page object
762 $page_gui = new ilLoginPageGUI(ilLanguage::lookupId($active_lang));
763
764 include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
765 $page_gui->setStyleId(0, 'auth');
766
767 $page_gui->setPresentationTitle("");
768 $page_gui->setTemplateOutput(false);
769 $page_gui->setHeader("");
770 $ret = $page_gui->showPage();
771
772 return $ret;
773 }
global $tpl
Definition: ilias.php:8
static lookupId($a_lang_key)
Lookup obj_id of language @global ilDB $ilDB.
Login page GUI class.
getContentStylePath($a_style_id)
get content style path
getSyntaxStylePath()
get syntax style path
_existsAndNotEmpty($a_parent_type, $a_id, $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages)

References $lng, $ret, $tpl, ilPageUtil\_existsAndNotEmpty(), ilObjStyleSheet\getContentStylePath(), ilAuthLoginPageEditorSettings\getInstance(), ilObjStyleSheet\getSyntaxStylePath(), and ilLanguage\lookupId().

Referenced by showLogin().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ilStartUpGUI()

ilStartUpGUI::ilStartUpGUI ( )

constructor

Definition at line 21 of file class.ilStartUpGUI.php.

22 {
23 global $ilCtrl;
24
25 $this->ctrl =& $ilCtrl;
26
27 $ilCtrl->saveParameter($this, array("rep_ref_id", "lang", "target", "client_id"));
28 }
global $ilCtrl
Definition: ilias.php:18

References $ilCtrl.

◆ initCodeForm()

ilStartUpGUI::initCodeForm (   $a_username)
protected

Definition at line 382 of file class.ilStartUpGUI.php.

383 {
384 global $lng, $ilCtrl;
385
386 $lng->loadLanguageModule("auth");
387
388 include_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
389
390 $form = new ilPropertyFormGUI();
391 $form->setFormAction($ilCtrl->getFormAction($this, 'showcodeform'));
392 $form->setTitle($lng->txt('auth_account_code_title'));
393
394 $count = new ilTextInputGUI($lng->txt('auth_account_code'), 'code');
395 $count->setRequired(true);
396 $count->setInfo($lng->txt('auth_account_code_info'));
397 $form->addItem($count);
398
399 // #11658
400 $uname = new ilHiddenInputGUI("uname");
401 $uname->setValue($a_username);
402 $form->addItem($uname);
403
404 $form->addCommandButton('processCode', $lng->txt('send'));
405
406 return $form;
407 }
This class represents a hidden form property in a property form.
This class represents a property form user interface.
This class represents a text property in a property form.

References $ilCtrl, and $lng.

Referenced by processCode(), and showCodeForm().

+ Here is the caller graph for this function:

◆ jumpToPasswordAssistance()

ilStartUpGUI::jumpToPasswordAssistance ( )

jump to password assistance

Definition at line 71 of file class.ilStartUpGUI.php.

72 {
73 $this->ctrl->setCmdClass("ilpasswordassistancegui");
74 $this->ctrl->setCmd("");
75 $this->executeCommand();
76 }
& executeCommand()
execute command

References executeCommand().

+ Here is the call graph for this function:

◆ jumpToRegistration()

ilStartUpGUI::jumpToRegistration ( )

jump to registration gui

Definition at line 61 of file class.ilStartUpGUI.php.

62 {
63 $this->ctrl->setCmdClass("ilaccountregistrationgui");
64 $this->ctrl->setCmd("");
65 $this->executeCommand();
66 }

References executeCommand().

+ Here is the call graph for this function:

◆ migrateAccount()

ilStartUpGUI::migrateAccount ( )

migrate account

@access public

Definition at line 969 of file class.ilStartUpGUI.php.

970 {
971 global $lng,$ilClientIniFile,$ilLog,$rbacadmin;
972
973 $lng->loadLanguageModule('auth');
974
975 if(!isset($_POST['account_migration']))
976 {
977 $this->showAccountMigration($lng->txt('err_choose_migration_type'));
978 return false;
979 }
980
981 if($_POST['account_migration'] == 1 and (!strlen($_POST['mig_username']) or !strlen($_POST['mig_password'])))
982 {
983 $this->showAccountMigration($lng->txt('err_wrong_login'));
984 return false;
985 }
986
987 if($_POST['account_migration'] == 1)
988 {
989 if(!$user_id = ilObjUser::_lookupId(ilUtil::stripSlashes($_POST['mig_username'])))
990 {
991 $this->showAccountMigration($lng->txt('err_wrong_login'));
992 return false;
993 }
994 $_POST['username'] = $_POST['mig_username'];
995 $_POST['password'] = $_POST['mig_password'];
996
997 include_once './Services/Authentication/classes/class.ilAuthFactory.php';
998 include_once './Services/Database/classes/class.ilAuthContainerMDB2.php';
999
1001 $ilAuth->start();
1002 if(!$ilAuth->checkAuth())
1003 {
1004 $ilAuth->logout();
1005 $this->showAccountMigration($lng->txt('err_wrong_login'));
1006 return false;
1007 }
1008
1009 $user = new ilObjUser($user_id);
1010 $user->setAuthMode(ilSession::get('tmp_auth_mode'));
1011
1012 ilLoggerFactory::getLogger('auth')->debug('Auth mode is: ' . ilSession::get('tmp_auth_mode'));
1013
1014 $user->setExternalAccount(ilSession::get('tmp_external_account'));
1015 $user->setActive(true);
1016 $user->update();
1017
1018 // Assign to default role
1019 if(is_array(ilSession::get('tmp_roles')))
1020 {
1021 foreach(ilSession::get('tmp_roles') as $role)
1022 {
1023 $rbacadmin->assignUser((int) $role,$user->getId());
1024 }
1025 }
1026
1027 // Log migration
1028 ilLoggerFactory::getLogger('auth')->info('Migrated '. ilSession::get('tmp_external_account').' to ILIAS account '. $user->getLogin());
1029 }
1030 elseif($_POST['account_migration'] == 2)
1031 {
1032 switch(ilSession::get('tmp_auth_mode_type'))
1033 {
1034 case 'apache':
1035 $_POST['username'] = ilSession::get('tmp_external_account');
1036 $_POST['password'] = ilSession::get('tmp_pass');
1037
1038 include_once('Services/AuthApache/classes/class.ilAuthContainerApache.php');
1039 $container = new ilAuthContainerApache();
1040 $container->forceCreation(true);
1041 $ilAuth = ilAuthFactory::factory($container);
1042 $ilAuth->start();
1043 break;
1044
1045 case 'ldap':
1046 $_POST['username'] = ilSession::get('tmp_external_account');
1047 $_POST['password'] = ilSession::get('tmp_pass');
1048 $server_id = ilSession::get('tmp_auth_mode_id');
1049
1050 include_once('Services/LDAP/classes/class.ilAuthContainerLDAP.php');
1051 $container = new ilAuthContainerLDAP($server_id);
1052 $container->forceCreation(true);
1053 $ilAuth = ilAuthFactory::factory($container);
1054 $ilAuth->start();
1055 break;
1056
1057 case 'radius':
1058 $_POST['username'] = ilSession::get('tmp_external_account');
1059 $_POST['password'] = ilSession::get('tmp_pass');
1060
1061 include_once './Services/Authentication/classes/class.ilAuthFactory.php';
1062 include_once './Services/Radius/classes/class.ilAuthContainerRadius.php';
1063
1064 $container = new ilAuthContainerRadius();
1065 $container->forceCreation(true);
1066 $ilAuth = ilAuthFactory::factory($container);
1067 $ilAuth->start();
1068 break;
1069
1070 case 'openid':
1071 $_POST['username'] = ilSession::get('dummy');
1072 $_POST['password'] = ilSession::get('dummy');
1073 $_POST['oid_username'] = ilSession::get('tmp_oid_username');
1074 $_POST['oid_provider'] = ilSession::get('tmp_oid_provider');
1075 //ilSession::set('force_creation', true);
1076
1077 include_once './Services/Authentication/classes/class.ilAuthFactory.php';
1078 include_once './Services/OpenId/classes/class.ilAuthContainerOpenId.php';
1079
1080 $container = new ilAuthContainerOpenId();
1081 $container->forceCreation(true);
1083 include_once './Services/OpenId/classes/class.ilAuthOpenId.php';
1084 $ilAuth = ilAuthFactory::factory($container);
1085
1086 // logout first to initiate a new login session
1087 $ilAuth->logout();
1088 ilSession::_destroy(session_id());
1089 ilSession::set('force_creation', true);
1090 $ilAuth->start();
1091 }
1092 }
1093
1094 $this->processStartingPage();
1095 }
Authentication against ILIAS database.
Overwritten Pear class AuthContainerLDAP This class is overwritten to support nested groups.
Authentication against ILIAS database.
@classDescription Pear auth container for openid
@classDescription Overwritten Pear class AuthContainerRadius This class is overwritten to support to ...
static factory(ilAuthContainerBase $deco)
The factory.
static setContext($a_context)
set context
static getLogger($a_component_id)
Get component logger.
static _lookupId($a_user_str)
Lookup id by login.
static set($a_var, $a_val)
Set a value.
static _destroy($a_session_id, $a_closing_context=null, $a_expired_at=null)
Destroy session.
static get($a_var)
Get a value.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
$_POST['username']
Definition: cron.php:12

References $_POST, $ilLog, $lng, ilSession\_destroy(), ilObjUser\_lookupId(), ilAuthFactory\CONTEXT_OPENID, ilAuthFactory\factory(), ilSession\get(), ilLoggerFactory\getLogger(), ilSession\set(), ilAuthFactory\setContext(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ processCode()

ilStartUpGUI::processCode ( )
protected

Definition at line 409 of file class.ilStartUpGUI.php.

410 {
411 global $lng, $ilAuth, $ilCtrl;
412
413 $uname = $_POST["uname"];
414
415 $form = $this->initCodeForm($uname);
416 if($uname && $form->checkInput())
417 {
418 $code = $form->getInput("code");
419
420 include_once "Services/User/classes/class.ilAccountCode.php";
422 {
424
425 if(!$user_id = ilObjUser::_lookupId($uname))
426 {
427 $this->showLogin();
428 return false;
429 }
430
431 $invalid_code = false;
432 $user = new ilObjUser($user_id);
433
434 if($valid_until === "0")
435 {
436 $user->setTimeLimitUnlimited(true);
437 }
438 else
439 {
440 if(is_numeric($valid_until))
441 {
442 $valid_until = strtotime("+".$valid_until."days");
443 }
444 else
445 {
446 $valid_until = explode("-", $valid_until);
447 $valid_until = mktime(23, 59, 59, $valid_until[1],
448 $valid_until[2], $valid_until[0]);
449 if($valid_until < time())
450 {
451 $invalid_code = true;
452 }
453 }
454
455 if(!$invalid_code)
456 {
457 $user->setTimeLimitUnlimited(false);
458 $user->setTimeLimitUntil($valid_until);
459 }
460 }
461
462 if(!$invalid_code)
463 {
464 $user->setActive(true);
465
467
468 // apply registration code role assignments
470
471 // apply registration code time limits
473
474 $user->update();
475
476 $ilCtrl->setParameter($this, "cu", 1);
477 $ilCtrl->redirect($this, "showLogin");
478 }
479 }
480
481 $lng->loadLanguageModule("user");
482 $field = $form->getItemByPostVar("code");
483 $field->setAlert($lng->txt("user_account_code_not_valid"));
484 }
485
486 $form->setValuesByPost();
487 $this->showCodeForm($uname, $form);
488 }
static isUnusedCode($code)
static getCodeValidUntil($code)
static applyRoleAssignments(ilObjUser $user, $code)
static applyAccessLimits(ilObjUser $user, $code)
static useCode($code)
showLogin()
show login
showCodeForm($a_username=null, $a_form=null)
initCodeForm($a_username)
$code
Definition: example_050.php:99

References $_POST, $code, $ilCtrl, $lng, ilObjUser\_lookupId(), ilAccountCode\applyAccessLimits(), ilAccountCode\applyRoleAssignments(), ilAccountCode\getCodeValidUntil(), initCodeForm(), ilAccountCode\isUnusedCode(), showCodeForm(), showLogin(), and ilAccountCode\useCode().

+ Here is the call graph for this function:

◆ processIndexPHP()

ilStartUpGUI::processIndexPHP ( )

process index.php

Definition at line 1417 of file class.ilStartUpGUI.php.

1418 {
1419 global $ilIliasIniFile, $ilAuth, $ilSetting;
1420
1421 // display client selection list if enabled
1422 if (!isset($_GET["client_id"]) &&
1423 $_GET["cmd"] == "" &&
1424 $ilIliasIniFile->readVariable("clients","list"))
1425 {
1426 return $this->showClientList();
1427 }
1428
1429 if($ilAuth->getAuth() && $ilAuth->getStatus() == "")
1430 {
1431 $this->processStartingPage();
1432 }
1433
1434 //
1435 // index.php is called and public section is enabled
1436 //
1437 // && $ilAuth->status == -101 is important for soap auth (public section on + user mapping, alex)
1438 // $ilAuth->status -1 is given, if session ends (if public section -> jump to public section)
1439
1440 if ($ilSetting->get("pub_section") && $_POST["sendLogin"] != "1"
1441 && ($ilAuth->getStatus() != -101 && $_GET["soap_pw"] == ""))
1442 {
1444 }
1445 else
1446 {
1447 // index.php is called and public section is disabled
1448 $this->showLogin();
1449 }
1450 }
static goToPublicSection($a_auth_stat="")
go to public section
showClientList()
show client list
global $ilSetting
Definition: privfeed.php:40
global $ilIliasIniFile

References $_GET, $_POST, $ilIliasIniFile, $ilSetting, ilInitialisation\goToPublicSection(), showClientList(), and showLogin().

Referenced by showClientList().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ purgePlaceholders()

ilStartUpGUI::purgePlaceholders (   $page_editor_html)
protected

Purge page editor html from unused placeholders.

Parameters
string$page_editor_html
Returns
string

Definition at line 888 of file class.ilStartUpGUI.php.

889 {
890 return str_replace(
891 array(
892 '[list-language-selection] ',
893 '[list-registration-link]',
894 '[list-user-agreement]',
895 '[list-login-form]',
896 '[list-cas-login-form]',
897 '[list-shibboleth-login-form]',
898 '[list-openid-login-form]'
899 ),
900 array('','','','','','',''),
901 $page_editor_html
902 );
903 }

Referenced by showLogin().

+ Here is the caller graph for this function:

◆ showCASLoginForm()

ilStartUpGUI::showCASLoginForm (   $page_editor_html)
protected

Show cas login @global ilSetting $ilSetting.

Parameters
string$page_editor_html
Returns
string $page_editor_html

Definition at line 618 of file class.ilStartUpGUI.php.

619 {
620 global $ilSetting, $lng;
621
622
623 // cas login link
624 if ($ilSetting->get("cas_active"))
625 {
626 $tpl = new ilTemplate('tpl.login_form_cas.html', true, true, 'Services/Init');
627 $tpl->setVariable("TXT_CAS_LOGIN", $lng->txt("login_to_ilias_via_cas"));
628 $tpl->setVariable("TXT_CAS_LOGIN_BUTTON", ilUtil::getImagePath("cas_login_button.png"));
629 $tpl->setVariable("TXT_CAS_LOGIN_INSTRUCTIONS", $ilSetting->get("cas_login_instructions"));
630 $this->ctrl->setParameter($this, "forceCASLogin", "1");
631 $tpl->setVariable("TARGET_CAS_LOGIN",$this->ctrl->getLinkTarget($this, "showLogin"));
632 $this->ctrl->setParameter($this, "forceCASLogin", "");
633
634 return $this->substituteLoginPageElements(
635 $GLOBALS['tpl'],
636 $page_editor_html,
637 $tpl->get(),
638 '[list-cas-login-form]',
639 'CAS_LOGIN_FORM'
640 );
641 }
642 return $page_editor_html;
643 }
substituteLoginPageElements($tpl, $page_editor_html, $element_html, $placeholder, $fallback_tplvar)
Substitute login page elements.
special template class to simplify handling of ITX/PEAR
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276

References $GLOBALS, $ilSetting, $lng, $tpl, ilUtil\getImagePath(), and substituteLoginPageElements().

Referenced by showLogin().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showClientList()

ilStartUpGUI::showClientList ( )

show client list

Definition at line 1212 of file class.ilStartUpGUI.php.

1213 {
1214 global $tpl, $ilIliasIniFile, $lng;
1215//echo "1";
1216 if (!$ilIliasIniFile->readVariable("clients","list"))
1217 {
1218 $this->processIndexPHP();
1219 return;
1220 }
1221//echo "2";
1222 $tpl = new ilTemplate("tpl.main.html", true, true);
1223 $tpl->setAddFooter(false); // no client yet
1224
1225 $tpl->setVariable("PAGETITLE", $lng->txt("clientlist_clientlist"));
1226 $tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
1227
1228 // load client list template
1229 self::initStartUpTemplate("tpl.client_list.html");
1230
1231 // load template for table
1232 $tpl->addBlockfile("CLIENT_LIST", "client_list", "tpl.table.html");
1233
1234 // load template for table content data
1235 $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
1236
1237 // load table content data
1238 require_once("setup/classes/class.ilClientList.php");
1239 require_once("setup/classes/class.ilClient.php");
1240 require_once("setup/classes/class.ilDBConnections.php");
1241 require_once("./Services/Table/classes/class.ilTableGUI.php");
1242 $this->db_connections = new ilDBConnections();
1243 $clientlist = new ilClientList($this->db_connections);
1244 $list = $clientlist->getClients();
1245
1246 if (count($list) == 0)
1247 {
1248 header("Location: ./setup/setup.php");
1249 exit();
1250 }
1251
1252 $hasPublicSection = false;
1253 foreach ($list as $key => $client)
1254 {
1255 $client->setDSN();
1256
1257 if ($client->checkDatabaseExists(true) and $client->ini->readVariable("client","access") and $client->getSetting("setup_ok"))
1258 {
1259 $this->ctrl->setParameter($this, "client_id", $key);
1260 $tmp = array();
1261 $tmp[] = $client->getName();
1262 $tmp[] = "<a href=\""."login.php?cmd=force_login&client_id=".urlencode($key)."\">".$lng->txt("clientlist_login_page")."</a>";
1263
1264 if($client->getSetting('pub_section'))
1265 {
1266 $hasPublicSection = true;
1267 $tmp[] = "<a href=\"" . "ilias.php?baseClass=ilRepositoryGUI&client_id=" . urlencode($key) . "\">".$lng->txt("clientlist_start_page")."</a>";
1268 }
1269 else
1270 {
1271 $tmp[] = '';
1272 }
1273
1274 $data[] = $tmp;
1275 }
1276 }
1277
1278 // create table
1279 $tbl = new ilTableGUI();
1280
1281 // title & header columns
1282 if($hasPublicSection)
1283 {
1284 $tbl->setTitle($lng->txt("clientlist_available_clients"));
1285 $tbl->setHeaderNames(array($lng->txt("clientlist_installation_name"), $lng->txt("clientlist_login"), $lng->txt("clientlist_public_access")));
1286 $tbl->setHeaderVars(array("name","index","login"));
1287 $tbl->setColumnWidth(array("50%","25%","25%"));
1288 }
1289 else
1290 {
1291 $tbl->setTitle($lng->txt("clientlist_available_clients"));
1292 $tbl->setHeaderNames(array($lng->txt("clientlist_installation_name"), $lng->txt("clientlist_login"), ''));
1293 $tbl->setHeaderVars(array("name","login",''));
1294 $tbl->setColumnWidth(array("70%","25%",'1px'));
1295 }
1296
1297 // control
1298 $tbl->setOrderColumn($_GET["sort_by"],"name");
1299 $tbl->setOrderDirection($_GET["sort_order"]);
1300 $tbl->setLimit($_GET["limit"]);
1301 $tbl->setOffset($_GET["offset"]);
1302
1303 // content
1304 $tbl->setData($data);
1305
1306 $tbl->disable("icon");
1307 $tbl->disable("numinfo");
1308 $tbl->disable("sort");
1309 $tbl->disable("footer");
1310
1311 // render table
1312 $tbl->render();
1313 $tpl->show("DEFAULT", true, true);
1314 }
client management
Administrates DB connections in setup.
processIndexPHP()
process index.php
Class ilTableGUI.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
$data
$tbl
Definition: example_048.php:81
exit
Definition: login.php:54

References $_GET, $client, $data, $ilIliasIniFile, $lng, $tbl, $tpl, exit, ilUtil\getStyleSheetLocation(), and processIndexPHP().

Referenced by processIndexPHP().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showCodeForm()

ilStartUpGUI::showCodeForm (   $a_username = null,
  $a_form = null 
)
protected

Definition at line 365 of file class.ilStartUpGUI.php.

366 {
367 global $tpl, $lng;
368
369 self::initStartUpTemplate("tpl.login_reactivate_code.html");
370
371 ilUtil::sendFailure($lng->txt("time_limit_reached"));
372
373 if(!$a_form)
374 {
375 $a_form = $this->initCodeForm($a_username);
376 }
377
378 $tpl->setVariable("FORM", $a_form->getHTML());
379 $tpl->show("DEFAULT", false);
380 }
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.

References $lng, $tpl, initCodeForm(), and ilUtil\sendFailure().

Referenced by processCode(), and showLogin().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLogin()

ilStartUpGUI::showLogin ( )

show login

@global ilLanguage $lng

Definition at line 83 of file class.ilStartUpGUI.php.

84 {
85 global $ilSetting, $ilAuth, $tpl, $ilias, $lng;
86
87 $status = $ilAuth->getStatus();
88 if ($status == "" && isset($_GET["auth_stat"]))
89 {
90 $status = $_GET["auth_stat"];
91 }
92
93 if($ilAuth->getAuth() && !$status)
94 {
95 // deprecated?
96 if ($_GET["rep_ref_id"] != "")
97 {
98 $_GET["ref_id"] = $_GET["rep_ref_id"];
99 }
100 $this->processStartingPage();
101 }
102
103 // check for session cookies enabled
104 if (!isset($_COOKIE['iltest']))
105 {
106 if (empty($_GET['cookies']))
107 {
108 $additional_params = '';
109
110 if(IS_PAYMENT_ENABLED)
111 {
112 if((int)$_GET['forceShoppingCartRedirect'])# && (int)$_SESSION['price_id'] && (int)$_SESSION['pobject_id'])
113 {
114 $additional_params .= '&login_to_purchase_object=1&forceShoppingCartRedirect=1';
115 }
116 }
117
118 ilUtil::setCookie("iltest","cookie",false);
119 ilUtil::redirect("login.php?target=".$_GET["target"]."&soap_pw=".$_GET["soap_pw"].
120 "&ext_uid=".$_GET["ext_uid"]."&cookies=nocookies&client_id=".
121 rawurlencode(CLIENT_ID)."&lang=".$lng->getLangKey().$additional_params);
122 }
123 else
124 {
125 $_COOKIE['iltest'] = "";
126 }
127 }
128 else
129 {
130 unset($_GET['cookies']);
131 }
132
133 if ($ilSetting->get("shib_active") && $ilSetting->get("shib_hos_type"))
134 {
135 require_once "./Services/AuthShibboleth/classes/class.ilShibbolethWAYF.php";
136 // Check if we user selects Home Organization
137 $WAYF = new ShibWAYF();
138 }
139
140 if (isset($WAYF) && $WAYF->is_selection())
141 {
142 if ($WAYF->is_valid_selection())
143 {
144 // Set cookie
145 $WAYF->setSAMLCookie();
146
147 // Redirect
148 $WAYF->redirect();
149 }
150 }
151
152 $failure = $success = null;
153
154 if(IS_PAYMENT_ENABLED)
155 {
156 if(isset($_GET['forceShoppingCartRedirect']) && (int)$_GET['forceShoppingCartRedirect'] == 1)
157 {
158 $this->ctrl->setParameter($this, 'forceShoppingCartRedirect', 1);
159 ilSession::set('forceShoppingCartRedirect', 1);
160 }
161
162 if (isset($_GET['login_to_purchase_object']) && $_GET['login_to_purchase_object'])
163 {
164 $lng->loadLanguageModule('payment');
165 $failure = $lng->txt("payment_login_to_buy_object");
166 ilSession::set('forceShoppingCartRedirect', 1);
167 }
168 }
169
170 // :TODO: handle internally?
171 if (isset($_GET['reg_confirmation_msg']) && strlen(trim($_GET['reg_confirmation_msg'])))
172 {
173 $lng->loadLanguageModule('registration');
174 if($_GET['reg_confirmation_msg'] == 'reg_account_confirmation_successful')
175 {
176 $success = $lng->txt(trim($_GET['reg_confirmation_msg']));
177 }
178 else
179 {
180 $failure = $lng->txt(trim($_GET['reg_confirmation_msg']));
181 }
182 }
183 else if(isset($_GET['reached_session_limit']) && $_GET['reached_session_limit'])
184 {
185 $failure = $lng->txt("reached_session_limit");
186 }
187 else if(isset($_GET['accdel']) && $_GET['accdel'])
188 {
189 $lng->loadLanguageModule('user');
190 $failure = $lng->txt("user_account_deleted_confirmation");
191 }
192
193 if (!empty($status))
194 {
195 switch ($status)
196 {
197 case AUTH_IDLED:
198 // lang variable err_idled not existing
199 // $tpl->setVariable(TXT_MSG_LOGIN_FAILED, $lng->txt("err_idled"));
200 // fallthrough
201
202 case AUTH_EXPIRED:
203 $failure = $lng->txt("err_session_expired");
204 break;
205
207 $failure = $lng->txt("err_auth_cas_no_ilias_user");
208 break;
209
211 $failure = $lng->txt("err_auth_soap_no_ilias_user");
212 break;
213
215 $failure = $lng->txt("err_auth_ldap_no_ilias_user");
216 break;
217
219 $failure = $lng->txt("err_auth_radius_no_ilias_user");
220 break;
221
223 $failure = $lng->txt("err_auth_mode_inactive");
224 break;
225
227 $failure = $lng->txt("err_auth_apache_failed");
228 break;
229
231 $lng->loadLanguageModule('cptch');
233 $ilAuth->logout();
234 session_destroy();
235 $failure = $lng->txt("cptch_wrong_input");
236 break;
237
238 // special cases: extended user validation failed
239 // ilAuth was successful, so we have to logout here
240
241 case AUTH_USER_WRONG_IP:
243 $ilAuth->logout();
244 session_destroy();
245
246 $failure = sprintf($lng->txt('wrong_ip_detected'), $_SERVER['REMOTE_ADDR']);
247 break;
248
251 $ilAuth->logout();
252 session_destroy();
253
254 $failure = $lng->txt("simultaneous_login_detected");
255 break;
256
259 $username = $ilAuth->getExceededUserName(); // #16327
260 $ilAuth->logout();
261
262 // user could reactivate by code?
263 if($ilSetting->get('user_reactivate_code'))
264 {
265 return $this->showCodeForm($username);
266 }
267
268 session_destroy();
269
270 $failure = $lng->txt("time_limit_reached");
271 break;
272
275 $ilAuth->logout();
276 session_destroy();
277
278 $failure = $lng->txt("err_inactive");
279 break;
280
283 $ilAuth->logout();
284 session_destroy();
285
286 $failure = $lng->txt("err_inactive_login_attempts");
287 break;
288
289 // special cases end
290
291
292 case AUTH_WRONG_LOGIN:
293 default:
294 $add = "";
295 $auth_error = $ilias->getAuthError();
296 if (is_object($auth_error))
297 {
298 $add = "<br>".$auth_error->getMessage();
299 }
300 $failure = $lng->txt("err_wrong_login").$add;
301 break;
302 }
303 }
304
305 if (isset($_GET['cu']) && $_GET['cu'])
306 {
307 $lng->loadLanguageModule("auth");
308 $success = $lng->txt("auth_account_code_used");
309 }
310
311
312 // --- render
313
314 // Instantiate login template
315 self::initStartUpTemplate("tpl.login.html");
316
317 // we need the template for this
318 if($failure)
319 {
321 }
322 else if($success)
323 {
325 }
326
327 $page_editor_html = $this->getLoginPageEditorHTML();
328 $page_editor_html = $this->showLoginInformation($page_editor_html);
329 $page_editor_html = $this->showLoginForm($page_editor_html);
330 $page_editor_html = $this->showCASLoginForm($page_editor_html);
331 $page_editor_html = $this->showShibbolethLoginForm($page_editor_html);
332 $page_editor_html = $this->showOpenIdLoginForm($page_editor_html);
333 $page_editor_html = $this->showRegistrationLinks($page_editor_html);
334 $page_editor_html = $this->showTermsOfServiceLink($page_editor_html);
335
336 $page_editor_html = $this->purgePlaceholders($page_editor_html);
337
338
339
340 // not controlled by login page editor
341 $tpl->setVariable("PAGETITLE", "- ".$lng->txt("startpage"));
342 $tpl->setVariable("ILIAS_RELEASE", $ilSetting->get("ilias_version"));
343
344 $this->ctrl->setTargetScript("ilias.php");
345 $tpl->setVariable("PHP_SELF", $_SERVER['PHP_SELF']);
346
347 // browser does not accept cookies
348 if (isset($_GET['cookies']) && $_GET['cookies'] == 'nocookies')
349 {
350 ilUtil::sendFailure($lng->txt("err_no_cookies"));
351 }
352
353 if(strlen($page_editor_html))
354 {
355 $tpl->setVariable('LPE',$page_editor_html);
356 }
357
358 $tpl->fillWindowTitle();
359 $tpl->fillCssFiles();
360 $tpl->fillJavaScriptFiles();
361
362 $tpl->show("DEFAULT", false);
363 }
const AUTH_EXPIRED
Returned if session has expired.
Definition: Auth.php:34
const AUTH_WRONG_LOGIN
Returned if container is unable to authenticate user/password pair.
Definition: Auth.php:38
const AUTH_IDLED
Returned if session exceeds idle time.
Definition: Auth.php:30
$success
Definition: Utf8Test.php:87
$failure
Class ShibbolethWAYF.
const AUTH_SOAP_NO_ILIAS_USER
const AUTH_APACHE_FAILED
const AUTH_USER_SIMULTANEOUS_LOGIN
const AUTH_CAPTCHA_INVALID
const AUTH_CAS_NO_ILIAS_USER
const AUTH_RADIUS_NO_ILIAS_USER
const AUTH_USER_INACTIVE_LOGIN_ATTEMPTS
const AUTH_USER_TIME_LIMIT_EXCEEDED
const AUTH_LDAP_NO_ILIAS_USER
const AUTH_USER_INACTIVE
const AUTH_USER_WRONG_IP
const AUTH_MODE_INACTIVE
const SESSION_CLOSE_CAPTCHA
const SESSION_CLOSE_IP
static setClosingContext($a_context)
set closing context (for statistics)
const SESSION_CLOSE_TIME
const SESSION_CLOSE_SIMUL
const SESSION_CLOSE_INACTIVE
showShibbolethLoginForm($page_editor_html)
Show shibboleth login form.
showCASLoginForm($page_editor_html)
Show cas login @global ilSetting $ilSetting.
showLoginForm($page_editor_html)
Show login form @global ilSetting $ilSetting.
showOpenIdLoginForm($page_editor_html)
Show openid login if enabled.
purgePlaceholders($page_editor_html)
Purge page editor html from unused placeholders.
getLoginPageEditorHTML()
Get HTML of ILIAS login page editor.
showLoginInformation($page_editor_html)
Show login information.
showRegistrationLinks($page_editor_html)
Show registration, password forgotten, client slection links @global ilLanguage $lng @global ilSettin...
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']

References $_COOKIE, $_GET, $_SERVER, $_SESSION, $failure, $ilSetting, $lng, $success, $tpl, AUTH_APACHE_FAILED, AUTH_CAPTCHA_INVALID, AUTH_CAS_NO_ILIAS_USER, AUTH_EXPIRED, AUTH_IDLED, AUTH_LDAP_NO_ILIAS_USER, AUTH_MODE_INACTIVE, AUTH_RADIUS_NO_ILIAS_USER, AUTH_SOAP_NO_ILIAS_USER, AUTH_USER_INACTIVE, AUTH_USER_INACTIVE_LOGIN_ATTEMPTS, AUTH_USER_SIMULTANEOUS_LOGIN, AUTH_USER_TIME_LIMIT_EXCEEDED, AUTH_USER_WRONG_IP, AUTH_WRONG_LOGIN, getLoginPageEditorHTML(), purgePlaceholders(), ilUtil\redirect(), ilUtil\sendFailure(), ilUtil\sendSuccess(), ilSession\SESSION_CLOSE_CAPTCHA, ilSession\SESSION_CLOSE_INACTIVE, ilSession\SESSION_CLOSE_IP, ilSession\SESSION_CLOSE_SIMUL, ilSession\SESSION_CLOSE_TIME, ilSession\set(), ilSession\setClosingContext(), ilUtil\setCookie(), showCASLoginForm(), showCodeForm(), showLoginForm(), showLoginInformation(), showOpenIdLoginForm(), showRegistrationLinks(), and showShibbolethLoginForm().

Referenced by processCode(), and processIndexPHP().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLoginForm()

ilStartUpGUI::showLoginForm (   $page_editor_html)
protected

Show login form @global ilSetting $ilSetting.

Parameters
string$page_editor_html

Definition at line 497 of file class.ilStartUpGUI.php.

498 {
499 global $ilSetting,$lng,$tpl;
500
501 // @todo move this to auth utils.
502 // login via ILIAS (this also includes radius and ldap)
503 // If local authentication is enabled for shibboleth users, we
504 // display the login form for ILIAS here.
505 if (($ilSetting->get("auth_mode") != AUTH_SHIBBOLETH ||
506 $ilSetting->get("shib_auth_allow_local")) &&
507 $ilSetting->get("auth_mode") != AUTH_CAS)
508 {
509 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
510 $form = new ilPropertyFormGUI();
511 //$form->setTableWidth('500');
512 $form->setFormAction($this->ctrl->getFormAction($this,''));
513 $form->setName("formlogin");
514 $form->setShowTopButtons(false);
515 $form->setTitle($lng->txt("login_to_ilias"));
516
517 // auth selection
518 include_once('./Services/Authentication/classes/class.ilAuthModeDetermination.php');
520 if(ilAuthUtils::_hasMultipleAuthenticationMethods() and $det->isManualSelection())
521 {
522 $visible_auth_methods = array();
523 $radg = new ilRadioGroupInputGUI($lng->txt("auth_selection"), "auth_mode");
524 foreach(ilAuthUtils::_getMultipleAuthModeOptions($lng) as $key => $option)
525 {
526 if(isset($option['hide_in_ui']) && $option['hide_in_ui'])
527 {
528 continue;
529 }
530
531 $op1 = new ilRadioOption($option['txt'], $key);
532 $radg->addOption($op1);
533 if (isset($option['checked']))
534 {
535 $radg->setValue($key);
536 }
537 $visible_auth_methods[] = $op1;
538 }
539
540 if(count($visible_auth_methods) == 1)
541 {
542 $first_auth_method = current($visible_auth_methods);
543 $hidden_auth_method = new ilHiddenInputGUI("auth_mode");
544 $hidden_auth_method->setValue($first_auth_method->getValue());
545 $form->addItem($hidden_auth_method);
546 }
547 else
548 {
549 $form->addItem($radg);
550 }
551 }
552
553 $ti = new ilTextInputGUI($lng->txt("username"), "username");
554 $ti->setSize(20);
555 $ti->setRequired(true);
556 $form->addItem($ti);
557
558 $pi = new ilPasswordInputGUI($lng->txt("password"), "password");
559 $pi->setRetype(false);
560 $pi->setSize(20);
561 $pi->setDisableHtmlAutoComplete(false);
562 $pi->setRequired(true);
563 $form->addItem($pi);
564 $form->addCommandButton("showLogin", $lng->txt("log_in"));
565
566 require_once 'Services/Captcha/classes/class.ilCaptchaUtil.php';
567 if(ilCaptchaUtil::isActiveForLogin())
568 {
569 require_once 'Services/Captcha/classes/class.ilCaptchaInputGUI.php';
570 $captcha = new ilCaptchaInputGUI($lng->txt('captcha_code'), 'captcha_code');
571 $captcha->setRequired(true);
572 $form->addItem($captcha);
573 }
574
575 return $this->substituteLoginPageElements(
576 $tpl,
577 $page_editor_html,
578 $form->getHTML(),
579 '[list-login-form]',
580 'LOGIN_FORM'
581 );
582
583 }
584 return $page_editor_html;
585 }
const AUTH_SHIBBOLETH
const AUTH_CAS
static _getMultipleAuthModeOptions($lng)
static _hasMultipleAuthenticationMethods()
This class represents a captcha input in a property form.
This class represents a password property in a property form.
This class represents a property in a property form.
This class represents an option in a radio group.

References $ilSetting, $lng, $tpl, ilAuthModeDetermination\_getInstance(), ilAuthUtils\_getMultipleAuthModeOptions(), ilAuthUtils\_hasMultipleAuthenticationMethods(), AUTH_CAS, AUTH_SHIBBOLETH, and substituteLoginPageElements().

Referenced by showLogin().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLoginInformation()

ilStartUpGUI::showLoginInformation (   $page_editor_html)
protected

Show login information.

Parameters
string$page_editor_html
Returns
string $page_editor_html

Definition at line 592 of file class.ilStartUpGUI.php.

593 {
594 global $lng,$tpl;
595
596 if(strlen($page_editor_html))
597 {
598 // page editor active return
599 return $page_editor_html;
600 }
601
602 $loginSettings = new ilSetting("login_settings");
603 $information = $loginSettings->get("login_message_".$lng->getLangKey());
604
605 if(strlen(trim($information)))
606 {
607 $tpl->setVariable("TXT_LOGIN_INFORMATION", $information);
608 }
609 return $page_editor_html;
610 }
ILIAS Setting Class.

References $lng, and $tpl.

Referenced by showLogin().

+ Here is the caller graph for this function:

◆ showLogout()

ilStartUpGUI::showLogout ( )

show logout screen

Definition at line 1100 of file class.ilStartUpGUI.php.

1101 {
1102 global $tpl, $ilSetting, $ilAuth, $lng, $ilIliasIniFile;
1103
1105 $ilAuth->logout();
1106 session_destroy();
1107
1108 // reset cookie
1109 $client_id = $_COOKIE["ilClientId"];
1110 ilUtil::setCookie("ilClientId","");
1111
1112 //instantiate logout template
1113 self::initStartUpTemplate("tpl.logout.html");
1114
1115 if ($ilSetting->get("pub_section"))
1116 {
1117 $tpl->setCurrentBlock("homelink");
1118 $tpl->setVariable("CLIENT_ID","?client_id=".$client_id."&lang=".$lng->getLangKey());
1119 $tpl->setVariable("TXT_HOME",$lng->txt("home"));
1120 $tpl->parseCurrentBlock();
1121 }
1122
1123 if ($ilIliasIniFile->readVariable("clients","list"))
1124 {
1125 $tpl->setCurrentBlock("client_list");
1126 $tpl->setVariable("TXT_CLIENT_LIST", $lng->txt("to_client_list"));
1127 $this->ctrl->setParameter($this, "client_id", $client_id);
1128 $tpl->setVariable("CMD_CLIENT_LIST",
1129 $this->ctrl->getLinkTarget($this, "showClientList"));
1130 $tpl->parseCurrentBlock();
1131 $this->ctrl->setParameter($this, "client_id", "");
1132 }
1133
1134 $tpl->setVariable("TXT_PAGEHEADLINE", $lng->txt("logout"));
1135 $tpl->setVariable("TXT_LOGOUT_TEXT", $lng->txt("logout_text"));
1136 $tpl->setVariable("TXT_LOGIN", $lng->txt("login_to_ilias"));
1137 $tpl->setVariable("CLIENT_ID","?client_id=".$client_id."&lang=".$lng->getLangKey());
1138
1139 $tpl->show();
1140 }
const SESSION_CLOSE_USER
$client_id

References $_COOKIE, $client_id, $ilIliasIniFile, $ilSetting, $lng, $tpl, ilSession\SESSION_CLOSE_USER, ilSession\setClosingContext(), and ilUtil\setCookie().

+ Here is the call graph for this function:

◆ showNoCookiesScreen()

ilStartUpGUI::showNoCookiesScreen ( )

show help screen, if cookies are disabled

to do: link to online help here

Definition at line 1321 of file class.ilStartUpGUI.php.

1322 {
1323 global $tpl;
1324
1325 $str = "<p style=\"margin:15px;\">
1326 You need to enable Session Cookies in your Browser to use ILIAS.
1327 <br/>
1328 <br/><b>Firefox</b>
1329 <br/>Tools -> Options -> Privacy -> Cookies
1330 <br/>Enable 'Allow sites to set cookies' and activate option 'Keep
1331 <br/>cookies' auf 'until I close Firefox'
1332 <br/>
1333 <br/><b>Mozilla/Netscape</b>
1334 <br/>Edit -> Preferences -> Privacy&Security -> Cookies
1335 <br/>Go to 'Cookie Lifetime Policy' and check option 'Accept for current
1336 <br/>session only'.
1337 <br/>
1338 <br/><b>Internet Explorer</b>
1339 <br/>Tools -> Internet Options -> Privacy -> Advanced
1340 <br/>- Check 'Override automatic cookie handling'
1341 <br/>- Check 'Always allow session cookies'
1342 </p>";
1343 $tpl->setVariable("CONTENT", $str);
1344 $tpl->show();
1345 }

References $tpl.

◆ showOpenIdLoginForm()

ilStartUpGUI::showOpenIdLoginForm (   $page_editor_html)
protected

Show openid login if enabled.

Returns

Definition at line 1823 of file class.ilStartUpGUI.php.

1824 {
1825 global $lng,$tpl;
1826
1827 include_once './Services/OpenId/classes/class.ilOpenIdSettings.php';
1828 if(!ilOpenIdSettings::getInstance()->isActive())
1829 {
1830 return $page_editor_html;
1831 }
1832
1833 $lng->loadLanguageModule('auth');
1834
1835 include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
1836 $form = new ilPropertyFormGUI();
1837 //$form->setTableWidth('500');
1838 $form->setShowTopButtons(false);
1839 $form->setFormAction($this->ctrl->getFormAction($this));
1840 $form->setTitle($lng->txt('login_to_ilias_via_openid'));
1841
1842 $openid = new ilTextInputGUI($lng->txt('auth_openid_login'),'oid_username');
1843 $openid->setSize(18);
1844 $openid->setMaxLength(255);
1845 $openid->setRequired(true);
1846 $openid->setCssClass('ilOpenIDBox');
1847 $openid->setInfo($lng->txt('auth_openid_login_info_a'));
1848 $form->addItem($openid);
1849
1850 include_once './Services/OpenId/classes/class.ilOpenIdProviders.php';
1851 $pro = new ilSelectInputGUI($lng->txt('auth_openid_provider'),'oid_provider');
1852 $pro->setOptions(ilOpenIdProviders::getInstance()->getProviderSelection());
1853 $pro->setValue(ilOpenIdProviders::getInstance()->getSelectedProvider());
1854 $form->addItem($pro);
1855 $form->addCommandButton("showLogin", $lng->txt("log_in"));
1856
1857 return $this->substituteLoginPageElements(
1858 $tpl,
1859 $page_editor_html,
1860 $form->getHTML(),
1861 '[list-openid-login-form]',
1862 'OID_LOGIN_FORM'
1863 );
1864 }
static getInstance()
Get singleton instance.
static getInstance()
Get singleton instance.
This class represents a selection list property in a property form.

References $lng, $tpl, ilOpenIdProviders\getInstance(), ilOpenIdSettings\getInstance(), and substituteLoginPageElements().

Referenced by showLogin().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showRegistrationLinks()

ilStartUpGUI::showRegistrationLinks (   $page_editor_html)
protected

Show registration, password forgotten, client slection links @global ilLanguage $lng @global ilSetting $ilSetting @global <type> $ilIliasIniFile.

Parameters
string$page_editor_html
Returns
string

Definition at line 783 of file class.ilStartUpGUI.php.

784 {
785 global $lng, $ilSetting, $ilIliasIniFile, $ilAccess;
786
787 $rtpl = new ilTemplate('tpl.login_registration_links.html',true,true,'Services/Init');
788
789 // allow new registrations?
790 include_once 'Services/Registration/classes/class.ilRegistrationSettings.php';
792 {
793 $rtpl->setCurrentBlock("new_registration");
794 $rtpl->setVariable("REGISTER", $lng->txt("registration"));
795 $rtpl->setVariable("CMD_REGISTER",
796 $this->ctrl->getLinkTargetByClass("ilaccountregistrationgui", ""));
797 $rtpl->parseCurrentBlock();
798 }
799 // allow password assistance? Surpress option if Authmode is not local database
800 if ($ilSetting->get("password_assistance"))
801 {
802 $rtpl->setCurrentBlock("password_assistance");
803 $rtpl->setVariable("FORGOT_PASSWORD", $lng->txt("forgot_password"));
804 $rtpl->setVariable("FORGOT_USERNAME", $lng->txt("forgot_username"));
805 $rtpl->setVariable("CMD_FORGOT_PASSWORD",
806 $this->ctrl->getLinkTargetByClass("ilpasswordassistancegui", ""));
807 $rtpl->setVariable("CMD_FORGOT_USERNAME",
808 $this->ctrl->getLinkTargetByClass("ilpasswordassistancegui", "showUsernameAssistanceForm"));
809 $rtpl->setVariable("LANG_ID", $lng->getLangKey());
810 $rtpl->parseCurrentBlock();
811 }
812
813 if ($ilSetting->get("pub_section") &&
814 $ilAccess->checkAccessOfUser(ANONYMOUS_USER_ID, "read", "", ROOT_FOLDER_ID))
815 {
816 $rtpl->setCurrentBlock("homelink");
817 $rtpl->setVariable("CLIENT_ID","?client_id=".$_COOKIE["ilClientId"]."&lang=".$lng->getLangKey());
818 $rtpl->setVariable("TXT_HOME",$lng->txt("home"));
819 $rtpl->parseCurrentBlock();
820 }
821
822 if ($ilIliasIniFile->readVariable("clients","list"))
823 {
824 $rtpl->setCurrentBlock("client_list");
825 $rtpl->setVariable("TXT_CLIENT_LIST", $lng->txt("to_client_list"));
826 $rtpl->setVariable("CMD_CLIENT_LIST",$this->ctrl->getLinkTarget($this, "showClientList"));
827 $rtpl->parseCurrentBlock();
828 }
829
830 return $this->substituteLoginPageElements(
831 $GLOBALS['tpl'],
832 $page_editor_html,
833 $rtpl->get(),
834 '[list-registration-link]',
835 'REG_PWD_CLIENT_LINKS'
836 );
837 }

References $_COOKIE, $GLOBALS, $ilIliasIniFile, $ilSetting, $lng, ilRegistrationSettings\_lookupRegistrationType(), IL_REG_DISABLED, and substituteLoginPageElements().

Referenced by showLogin().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showShibbolethLoginForm()

ilStartUpGUI::showShibbolethLoginForm (   $page_editor_html)
protected

Show shibboleth login form.

Parameters
string$page_editor_html
Returns
string $page_editor_html

Definition at line 650 of file class.ilStartUpGUI.php.

651 {
652 global $ilSetting, $lng;
653
654 // Refactoring with ilFormPropertyGUI
655 // [...]
656
657 // shibboleth login link
658 if ($ilSetting->get("shib_active")) {
659 $tpl = new ilTemplate('tpl.login_form_shibboleth.html', true, true, 'Services/Init');
660
661 $tpl->setVariable('SHIB_FORMACTION', './shib_login.php'); // Bugfix http://ilias.de/mantis/view.php?id=10662 {$tpl->setVariable('SHIB_FORMACTION', $this->ctrl->getFormAction($this));}
662
663 if ($ilSetting->get("shib_hos_type") == 'external_wayf') {
664 $tpl->setCurrentBlock("shibboleth_login");
665 $tpl->setVariable("TXT_SHIB_LOGIN", $lng->txt("login_to_ilias_via_shibboleth"));
666 $tpl->setVariable("IL_TARGET", $_GET["target"]);
667 $tpl->setVariable("TXT_SHIB_FEDERATION_NAME", $ilSetting->get("shib_federation_name"));
668 $tpl->setVariable("TXT_SHIB_LOGIN_BUTTON", $ilSetting->get("shib_login_button"));
669 $tpl->setVariable("TXT_SHIB_LOGIN_INSTRUCTIONS", sprintf($lng->txt("shib_general_login_instructions"), $ilSetting->get("shib_federation_name")) . ' <a href="mailto:' . $ilSetting->get("admin_email") . '">ILIAS ' . $lng->txt("administrator") . '</a>.');
670 $tpl->setVariable("TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS", $ilSetting->get("shib_login_instructions"));
671 $tpl->parseCurrentBlock();
672 } elseif ($ilSetting->get("shib_hos_type") == 'embedded_wayf') {
673 $tpl->setCurrentBlock("shibboleth_custom_login");
674 $customInstructions = stripslashes($ilSetting->get("shib_login_instructions"));
675 $tpl->setVariable("TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS", $customInstructions);
676 $tpl->parseCurrentBlock();
677 } else {
678 $tpl->setCurrentBlock("shibboleth_wayf_login");
679 $tpl->setVariable("TXT_SHIB_LOGIN", $lng->txt("login_to_ilias_via_shibboleth"));
680 $tpl->setVariable("TXT_SHIB_FEDERATION_NAME", $ilSetting->get("shib_federation_name"));
681 $tpl->setVariable("TXT_SELECT_HOME_ORGANIZATION", sprintf($lng->txt("shib_select_home_organization"), $ilSetting->get("shib_federation_name")));
682 $tpl->setVariable("TXT_CONTINUE", $lng->txt("btn_next"));
683 $tpl->setVariable("TXT_SHIB_HOME_ORGANIZATION", $lng->txt("shib_home_organization"));
684 $tpl->setVariable("TXT_SHIB_LOGIN_INSTRUCTIONS", $lng->txt("shib_general_wayf_login_instructions") . ' <a href="mailto:' . $ilSetting->get("admin_email") . '">ILIAS ' . $lng->txt("administrator") . '</a>.');
685 $tpl->setVariable("TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS", $ilSetting->get("shib_login_instructions"));
686
687 require_once "./Services/AuthShibboleth/classes/class.ilShibbolethWAYF.php";
688 $WAYF = new ShibWAYF();
689
690 $tpl->setVariable("TXT_SHIB_INVALID_SELECTION", $WAYF->showNotice());
691 $tpl->setVariable("SHIB_IDP_LIST", $WAYF->generateSelection());
692 $tpl->setVariable("ILW_TARGET", $_GET["target"]);
693 $tpl->parseCurrentBlock();
694 }
695
696 return $this->substituteLoginPageElements($GLOBALS['tpl'], $page_editor_html, $tpl->get(), '[list-shibboleth-login-form]', 'SHIB_LOGIN_FORM');
697 }
698
699 return $page_editor_html;
700 }

References $_GET, $GLOBALS, $ilSetting, $lng, $tpl, and substituteLoginPageElements().

Referenced by showLogin().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showUserMappingSelection()

ilStartUpGUI::showUserMappingSelection ( )

Show user selection screen, if external account could not be mapped to an ILIAS account, but the provided e-mail address is known.

Definition at line 1146 of file class.ilStartUpGUI.php.

1147 {
1148 global $ilAuth, $tpl, $lng;
1149
1150 $valid = $ilAuth->getValidationData();
1151
1152 self::initStartUpTemplate("tpl.user_mapping_selection.html");
1153 $email_user = ilObjUser::_getLocalAccountsForEmail($valid["email"]);
1154
1155
1156 if ($ilAuth->getSubStatus() == AUTH_WRONG_LOGIN)
1157 {
1158 ilUtil::sendFailure($lng->txt("err_wrong_login"));
1159 }
1160
1161 include_once('./Services/User/classes/class.ilObjUser.php');
1162 if (count($email_user) == 1)
1163 {
1164 //$user = new ilObjUser(key($email_user));
1165 $tpl->setCurrentBlock("one_user");
1166 $tpl->setVariable("TXT_USERNAME", $lng->txt("username"));
1167 $tpl->setVariable("VAL_USERNAME", current($email_user));
1168 $tpl->setVariable("USER_ID", key($email_user));
1169 $tpl->parseCurrentBlock();
1170 }
1171 else
1172 {
1173 foreach($email_user as $key => $login)
1174 {
1175 $tpl->setCurrentBlock("user");
1176 $tpl->setVariable("USR_ID", $key);
1177 $tpl->setVariable("VAL_USER", $login);
1178 $tpl->parseCurrentBlock();
1179 }
1180 $tpl->setCurrentBlock("multpiple_user");
1181 $tpl->parseCurrentBlock();
1182 }
1183
1184 $tpl->setCurrentBlock("content");
1185 $this->ctrl->setParameter($this, "ext_uid", urlencode($_GET["ext_uid"]));
1186 $this->ctrl->setParameter($this, "soap_pw", urlencode($_GET["soap_pw"]));
1187 $this->ctrl->setParameter($this, "auth_stat", $_GET["auth_stat"]);
1188 $tpl->setVariable("FORMACTION",
1189 $this->ctrl->getFormAction($this));
1190 $tpl->setVariable("TXT_ILIAS_LOGIN", $lng->txt("login_to_ilias"));
1191 if (count($email_user) == 1)
1192 {
1193 $tpl->setVariable("TXT_EXPLANATION", $lng->txt("ums_explanation"));
1194 $tpl->setVariable("TXT_EXPLANATION_2", $lng->txt("ums_explanation_2"));
1195 }
1196 else
1197 {
1198 $tpl->setVariable("TXT_EXPLANATION", $lng->txt("ums_explanation_3"));
1199 $tpl->setVariable("TXT_EXPLANATION_2", $lng->txt("ums_explanation_4"));
1200 }
1201 $tpl->setVariable("TXT_CREATE_USER", $lng->txt("ums_create_new_account"));
1202 $tpl->setVariable("TXT_PASSWORD", $lng->txt("password"));
1203 $tpl->setVariable("PASSWORD", ilUtil::prepareFormOutput($_POST["password"]));
1204 $tpl->setVariable("TXT_SUBMIT", $lng->txt("login"));
1205
1206 $tpl->show();
1207 }
_getLocalAccountsForEmail($a_email)
check whether external account and authentication method matches with a user
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
$valid

References $_GET, $_POST, $lng, $tpl, $valid, ilObjUser\_getLocalAccountsForEmail(), AUTH_WRONG_LOGIN, ilUtil\prepareFormOutput(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ substituteLoginPageElements()

ilStartUpGUI::substituteLoginPageElements (   $tpl,
  $page_editor_html,
  $element_html,
  $placeholder,
  $fallback_tplvar 
)
protected

Substitute login page elements.

Parameters
ilTemplate$tpl
string$page_editor_html
string$element_html
string$placeholder
string$fallback_tplvarreturn string $page_editor_html

Definition at line 712 of file class.ilStartUpGUI.php.

713 {
714 if(!strlen($page_editor_html))
715 {
716 $tpl->setVariable($fallback_tplvar,$element_html);
717 return $page_editor_html;
718 }
719 // Try to replace placeholders
720 if(!stristr($page_editor_html, $placeholder))
721 {
722 $tpl->setVariable($fallback_tplvar,$element_html);
723 return $page_editor_html;
724 }
725 return str_replace($placeholder, $element_html, $page_editor_html);
726 }

References $tpl.

Referenced by showCASLoginForm(), showLoginForm(), showOpenIdLoginForm(), showRegistrationLinks(), and showShibbolethLoginForm().

+ Here is the caller graph for this function:

The documentation for this class was generated from the following file: