ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilStartUpGUI Class Reference

StartUp GUI class. More...

+ Collaboration diagram for ilStartUpGUI:

Public Member Functions

 __construct ()
 constructor More...
 
 executeCommand ()
 execute command More...
 
 getLogger ()
 Get logger. More...
 
 jumpToRegistration ()
 jump to registration gui More...
 
 jumpToPasswordAssistance ()
 jump to password assistance More...
 
 migrateAccount2 ()
 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...
 
 confirmRegistration ()
 

Static Public Member Functions

static _checkGoto ($a_target)
 

Data Fields

const ACCOUNT_MIGRATION_MIGRATE = 1
 
const ACCOUNT_MIGRATION_NEW = 2
 

Protected Member Functions

 showLoginPage (ilPropertyFormGUI $form=null)
 
 showLogin ()
 Show login. More...
 
 showCodeForm ($a_username=null, $a_form=null)
 
 initCodeForm ($a_username)
 
 processCode ()
 
 initStandardLoginForm ()
 Initialize the standard. More...
 
 doShibbolethAuthentication ()
 Trying shibboleth authentication. More...
 
 doCasAuthentication ()
 Try CAS auth. More...
 
 doApacheAuthentication ()
 Try apache auth. More...
 
 doStandardAuthentication ()
 Check form input; authenticate user. More...
 
 showLoginForm ($page_editor_html, ilPropertyFormGUI $form=null)
 Show login form ilSetting $ilSetting. More...
 
 showLoginInformation ($page_editor_html)
 Show login information. More...
 
 showCASLoginForm ($page_editor_html)
 Show cas login 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 ilLanguage $lng ilSetting $ilSetting <type> $ilIliasIniFile. More...
 
 purgePlaceholders ($page_editor_html)
 Purge page editor html from unused placeholders. More...
 
 migrateAccount ()
 Migrate Account. More...
 
 doMigrationNewAccount ()
 Create new account for migration. More...
 
 doMigration ()
 Do migration of existing ILIAS database user account. More...
 
 getAcceptance ()
 Get terms of service. More...
 
 processIndexPHP ()
 process index.php More...
 

Static Protected Member Functions

static getLanguageSelection ()
 language selection list More...
 

Protected Attributes

 $ctrl
 
 $lng
 
 $logger
 

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$ ilStartUpGUI: ilAccountRegistrationGUI, ilPasswordAssistanceGUI, ilLoginPageGUI

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

Constructor & Destructor Documentation

◆ __construct()

ilStartUpGUI::__construct ( )

constructor

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

References $ilCtrl, $lng, array, and ilLoggerFactory\getLogger().

28  {
29  global $ilCtrl, $lng;
30 
31  $this->ctrl = $ilCtrl;
32  $this->lng = $lng;
33  $this->lng->loadLanguageModule('auth');
34  $this->logger = ilLoggerFactory::getLogger('init');
35 
36  $ilCtrl->saveParameter($this, array("rep_ref_id", "lang", "target", "client_id"));
37  }
global $ilCtrl
Definition: ilias.php:18
Create styles array
The data for the language used.
static getLogger($a_component_id)
Get component logger.
+ Here is the call graph for this function:

Member Function Documentation

◆ _checkGoto()

static ilStartUpGUI::_checkGoto (   $a_target)
static

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

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

1976  {
1977  global $objDefinition, $ilPluginAdmin, $ilUser;
1978 
1979  if (is_object($ilPluginAdmin))
1980  {
1981  // get user interface plugins
1982  $pl_names = $ilPluginAdmin->getActivePluginsForSlot(IL_COMP_SERVICE, "UIComponent", "uihk");
1983 
1984  // search
1985  foreach ($pl_names as $pl)
1986  {
1987  $ui_plugin = ilPluginAdmin::getPluginObject(IL_COMP_SERVICE, "UIComponent", "uihk", $pl);
1988  $gui_class = $ui_plugin->getUIClassInstance();
1989  $resp = $gui_class->checkGotoHook($a_target);
1990  if ($resp["target"] !== false)
1991  {
1992  $a_target = $resp["target"];
1993  break;
1994  }
1995  }
1996  }
1997 
1998  if ($a_target == "")
1999  {
2000  return false;
2001  }
2002 
2003  $t_arr = explode("_", $a_target);
2004  $type = $t_arr[0];
2005 
2006  if ($type == "git")
2007  {
2008  $type = "glo";
2009  }
2010 
2011  if ($type == "pg" | $type == "st")
2012  {
2013  $type = "lm";
2014  }
2015 
2016  $class = $objDefinition->getClassName($type);
2017  if ($class == "")
2018  {
2019  return false;
2020  }
2021 
2022  $location = $objDefinition->getLocation($type);
2023  $full_class = "ilObj".$class."Access";
2024  include_once($location."/class.".$full_class.".php");
2025 
2026  $ret = call_user_func(array($full_class, "_checkGoto"), $a_target);
2027 
2028  // if no access and repository object => check for parent course/group
2029  if(!$ret &&
2030  !stristr($a_target, "_wsp") &&
2031  $ilUser->getId() != ANONYMOUS_USER_ID && // #10637
2032  !$objDefinition->isAdministrationObject($type) &&
2033  $objDefinition->isRBACObject($type) &&
2034  $t_arr[1])
2035  {
2036  global $tree, $rbacsystem, $ilAccess;
2037 
2038  // original type "pg" => pg_<page_id>[_<ref_id>]
2039  if($t_arr[0] == "pg")
2040  {
2041  if(isset($t_arr[2]))
2042  {
2043  $ref_id = $t_arr[2];
2044  }
2045  else
2046  {
2047  $lm_id = ilLMObject::_lookupContObjID($t_arr[1]);
2049  if($ref_id)
2050  {
2051  $ref_id = array_shift($ref_id);
2052  }
2053  }
2054  }
2055  else
2056  {
2057  $ref_id = $t_arr[1];
2058  }
2059 
2060  include_once "Services/Membership/classes/class.ilParticipants.php";
2061  $block_obj = array();
2062 
2063  // walk path to find parent container
2064  $path = $tree->getPathId($ref_id);
2065  array_pop($path);
2066  foreach($path as $path_ref_id)
2067  {
2068  $redirect_infopage = false;
2069  $add_member_role = false;
2070 
2071  $ptype = ilObject::_lookupType($path_ref_id, true);
2072  $pobj_id = ilObject::_lookupObjId($path_ref_id);
2073 
2074  // core checks: timings/object-specific
2075  if(!$ilAccess->doActivationCheck("read", "", $path_ref_id, $ilUser->getId(), $pobj_id, $ptype) ||
2076  !$ilAccess->doStatusCheck("read", "", $path_ref_id, $ilUser->getId(), $pobj_id, $ptype))
2077  {
2078  // object in path is inaccessible - aborting
2079  return false;
2080  }
2081  else if($ptype == "crs")
2082  {
2083  // check if already participant
2084  include_once "Modules/Course/classes/class.ilCourseParticipant.php";
2085  $participants = new ilCourseParticipant($pobj_id, $ilUser->getId());
2086  if(!$participants->isAssigned())
2087  {
2088  // subscription currently possible?
2089  include_once "Modules/Course/classes/class.ilObjCourse.php";
2090  if(ilObjCourse::_isActivated($pobj_id) &&
2092  {
2093  $block_obj[] = $path_ref_id;
2094  $add_member_role = true;
2095  }
2096  else
2097  {
2098  $redirect_infopage = true;
2099  }
2100  }
2101  }
2102  else if($ptype == "grp")
2103  {
2104  // check if already participant
2105  include_once "Modules/Group/classes/class.ilGroupParticipants.php";
2106  if(!ilGroupParticipants::_isParticipant($path_ref_id, $ilUser->getId()))
2107  {
2108  // subscription currently possible?
2109  include_once "Modules/Group/classes/class.ilObjGroup.php";
2110  $group_obj = new ilObjGroup($path_ref_id);
2111  if($group_obj->isRegistrationEnabled())
2112  {
2113  $block_obj[] = $path_ref_id;
2114  $add_member_role = true;
2115  }
2116  else
2117  {
2118  $redirect_infopage = true;
2119  }
2120  }
2121  }
2122 
2123  // add members roles for all "blocking" objects
2124  if($add_member_role)
2125  {
2126  // cannot join? goto will never work, so redirect to current object
2127  $rbacsystem->resetPACache($ilUser->getId(), $path_ref_id);
2128  if(!$rbacsystem->checkAccess("join", $path_ref_id))
2129  {
2130  $redirect_infopage = true;
2131  }
2132  else
2133  {
2134  $rbacsystem->addTemporaryRole($ilUser->getId(),
2135  ilParticipants::getDefaultMemberRole($path_ref_id));
2136  }
2137  }
2138 
2139  // redirect to infopage of 1st blocking object in path
2140  if($redirect_infopage)
2141  {
2142  if($rbacsystem->checkAccess("visible", $path_ref_id))
2143  {
2144  ilUtil::redirect("ilias.php?baseClass=ilRepositoryGUI".
2145  "&ref_id=".$path_ref_id."&cmd=infoScreen");
2146  }
2147  else
2148  {
2149  return false;
2150  }
2151  }
2152  }
2153 
2154  // check if access will be possible with all (possible) member roles added
2155  $rbacsystem->resetPACache($ilUser->getId(), $ref_id);
2156  if($rbacsystem->checkAccess("read", $ref_id) && sizeof($block_obj)) // #12128
2157  {
2158  // this won't work with lm-pages (see above)
2159  // include_once "Services/Link/classes/class.ilLink.php";
2160  // $_SESSION["pending_goto"] = ilLink::_getStaticLink($ref_id, $type);
2161 
2162  // keep original target
2163  $_SESSION["pending_goto"] = "goto.php?target=".$a_target;
2164 
2165  // redirect to 1st non-member object in path
2166  ilUtil::redirect("ilias.php?baseClass=ilRepositoryGUI".
2167  "&ref_id=".array_shift($block_obj));
2168  }
2169  }
2170 
2171  return $ret;
2172  }
$path
Definition: aliased.php:25
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
$_SESSION["AccountId"]
$location
Definition: buildRTE.php:44
static _registrationEnabled($a_obj_id)
Registration enabled? Method is in Access class, since it is needed by Access/ListGUI.
static _lookupContObjID($a_id)
get learning module / digibook id for lm object
static getDefaultMemberRole($a_ref_id)
static _getAllReferences($a_id)
get all reference ids of object
static _lookupObjId($a_id)
$ilUser
Definition: imgupload.php:18
static getPluginObject($a_ctype, $a_cname, $a_slot_id, $a_pname)
Get Plugin Object.
Create styles array
The data for the language used.
static _lookupType($a_id, $a_reference=false)
lookup object type
static _isActivated($a_obj_id)
Is activated.
$ref_id
Definition: sahs_server.php:39
$ret
Definition: parser.php:6
Class ilObjGroup.
static redirect($a_script)
http redirect to other script
const IL_COMP_SERVICE
+ Here is the call graph for this function:

◆ confirmRegistration()

ilStartUpGUI::confirmRegistration ( )

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

References $_COOKIE, $_GET, $ilCtrl, $ilLog, $ilSetting, $lng, $target, $tpl, ilObjUserFolder\_lookupNewAccountMail(), ilObjUser\_verifyRegistrationHash(), array, ilUtil\generatePasswords(), ilUtil\getImagePath(), ilObjectFactory\getInstanceByObjId(), IL_PASSWD_PLAIN, ilUIFramework\init(), iljQueryUtil\initjQuery(), ilUtil\redirect(), ilUtil\setCookie(), and time.

2175  {
2176  global $lng, $ilias, $ilLog;
2177 
2178  ilUtil::setCookie('iltest', 'cookie', false);
2179 
2180  if(!isset($_GET['rh']) || !strlen(trim($_GET['rh'])))
2181  {
2182  ilUtil::redirect('./login.php?cmd=force_login&reg_confirmation_msg=reg_confirmation_hash_not_passed');
2183  }
2184 
2185  try
2186  {
2187  require_once 'Services/Registration/classes/class.ilRegistrationSettings.php';
2188  $oRegSettings = new ilRegistrationSettings();
2189 
2190  $usr_id = ilObjUser::_verifyRegistrationHash(trim($_GET['rh']));
2191  $oUser = ilObjectFactory::getInstanceByObjId($usr_id);
2192  $oUser->setActive(true);
2193  if($oRegSettings->passwordGenerationEnabled())
2194  {
2195  $passwd = ilUtil::generatePasswords(1);
2196  $password = $passwd[0];
2197  $oUser->setPasswd($password, IL_PASSWD_PLAIN);
2198  $oUser->setLastPasswordChangeTS( time() );
2199  }
2200  $oUser->update();
2201 
2202  $usr_lang = $oUser->getPref('language');
2203 
2204  if($lng->getLangKey() != $usr_lang)
2205  {
2206  $lng = new ilLanguage($usr_lang);
2207  }
2208 
2209  $target = $oUser->getPref('reg_target');
2210  if(strlen($target) > 0)
2211  {
2212  $_GET['target'] = $target;
2213  }
2214 
2215  // send email
2216  // try individual account mail in user administration
2217  include_once("Services/Mail/classes/class.ilAccountMail.php");
2218  include_once './Services/User/classes/class.ilObjUserFolder.php';
2219  $amail = ilObjUserFolder::_lookupNewAccountMail($usr_lang);
2220  if (trim($amail["body"]) != "" && trim($amail["subject"]) != "")
2221  {
2222  $acc_mail = new ilAccountMail();
2223  $acc_mail->setUser($oUser);
2224  if($oRegSettings->passwordGenerationEnabled())
2225  {
2226  $acc_mail->setUserPassword($password);
2227  }
2228  $acc_mail->send();
2229  }
2230  else // do default mail
2231  {
2232  include_once 'Services/Mail/classes/class.ilMail.php';
2233  $mail_obj = new ilMail(ANONYMOUS_USER_ID);
2234 
2235  // mail subject
2236  $subject = $lng->txt("reg_mail_subject");
2237 
2238  // mail body
2239  $body = $lng->txt("reg_mail_body_salutation")." ".$oUser->getFullname().",\n\n".
2240  $lng->txt("reg_mail_body_text1")."\n\n".
2241  $lng->txt("reg_mail_body_text2")."\n".
2242  ILIAS_HTTP_PATH."/login.php?client_id=".CLIENT_ID."\n";
2243  $body .= $lng->txt("login").": ".$oUser->getLogin()."\n";
2244 
2245  if($oRegSettings->passwordGenerationEnabled())
2246  {
2247  $body.= $lng->txt("passwd").": ".$password."\n";
2248  }
2249 
2250  $body.= "\n";
2251  $body.= $lng->txt('reg_mail_body_forgot_password_info')."\n";
2252 
2253  $body.= "\n";
2254 
2255  $body .= ($lng->txt("reg_mail_body_text3")."\n\r");
2256  $body .= $oUser->getProfileAsString($lng);
2257  $mail_obj->enableSoap(false);
2258  $mail_obj->appendInstallationSignature(true);
2259  $mail_obj->sendMail($oUser->getEmail(), '', '',
2260  $subject,
2261  $body,
2262  array(), array('normal'));
2263  }
2264 
2265  ilUtil::redirect('./login.php?cmd=force_login&reg_confirmation_msg=reg_account_confirmation_successful&lang='.$usr_lang);
2266  }
2267  catch(ilRegConfirmationLinkExpiredException $exception)
2268  {
2269  include_once 'Services/WebServices/SOAP/classes/class.ilSoapClient.php';
2270  $soap_client = new ilSoapClient();
2271  $soap_client->setResponseTimeout(1);
2272  $soap_client->enableWSDL(true);
2273  $soap_client->init();
2274 
2275  $ilLog->write(__METHOD__.': Triggered soap call (background process) for deletion of inactive user objects with expired confirmation hash values (dual opt in) ...');
2276 
2277  $soap_client->call
2278  (
2279  'deleteExpiredDualOptInUserObjects',
2280  array
2281  (
2282  $_COOKIE['PHPSESSID'].'::'.$_COOKIE['ilClientId'], // session id and client id, not used for checking access -> not possible for anonymous
2283  $exception->getCode() // user id
2284  )
2285  );
2286 
2287  ilUtil::redirect('./login.php?cmd=force_login&reg_confirmation_msg='.$exception->getMessage()."&lang=".$usr_lang);
2288  }
2289  catch(ilRegistrationHashNotFoundException $exception)
2290  {
2291  ilUtil::redirect('./login.php?cmd=force_login&reg_confirmation_msg='.$exception->getMessage()."&lang=".$usr_lang);
2292  }
2293  }
const IL_PASSWD_PLAIN
$_GET["client_id"]
Class for user related exception handling in ILIAS.
static generatePasswords($a_number)
Generate a number of passwords.
static _verifyRegistrationHash($a_hash)
Verifies a registration hash.
static setCookie($a_cookie_name, $a_cookie_value='', $a_also_set_super_global=true, $a_set_cookie_invalid=false)
static _lookupNewAccountMail($a_lang)
This class handles base functions for mail handling.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
Create styles array
The data for the language used.
Class ilObjAuthSettingsGUI.
Class ilAccountMail.
$_COOKIE['ilClientId']
Definition: BPMN2Parser.php:15
language handling
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
Class for user related exception handling in ILIAS.
static redirect($a_script)
http redirect to other script
+ Here is the call graph for this function:

◆ doApacheAuthentication()

ilStartUpGUI::doApacheAuthentication ( )
protected

Try apache auth.

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

References $GLOBALS, League\OAuth2\Client\Provider\$provider, ilUtil\appendUrlParameterString(), array, AUTH_APACHE, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ilAuthStatus\getInstance(), getLogger(), ilLoggerFactory\getLogger(), ilUtil\redirect(), ilUtil\sendFailure(), showLoginPage(), ilAuthStatus\STATUS_ACCOUNT_MIGRATION_REQUIRED, ilAuthStatus\STATUS_AUTHENTICATED, and ilAuthStatus\STATUS_AUTHENTICATION_FAILED.

772  {
773  $this->getLogger()->debug('Trying apache authentication');
774 
775  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentialsApache.php';
776  $credentials = new ilAuthFrontendCredentialsApache();
777  $credentials->initFromRequest();
778 
779  include_once './Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
780  $provider_factory = new ilAuthProviderFactory();
781  $provider = $provider_factory->getProviderByAuthMode($credentials, AUTH_APACHE);
782 
783  include_once './Services/Authentication/classes/class.ilAuthStatus.php';
784  $status = ilAuthStatus::getInstance();
785 
786  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
787  $frontend_factory = new ilAuthFrontendFactory();
788  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
789  $frontend = $frontend_factory->getFrontend(
790  $GLOBALS['DIC']['ilAuthSession'],
791  $status,
792  $credentials,
794  );
795 
796  $frontend->authenticate();
797 
798  switch($status->getStatus())
799  {
801  ilLoggerFactory::getLogger('auth')->debug('Authentication successful; Redirecting to starting page.');
802  if($credentials->hasValidTargetUrl())
803  {
804  ilUtil::redirect($credentials->getTargetUrl());
805  }
806  else
807  {
808  require_once './Services/Init/classes/class.ilInitialisation.php';
809  ilInitialisation::redirectToStartingPage();
810  }
811  return;
812 
814  return $GLOBALS['ilCtrl']->redirect($this, 'showAccountMigration');
815 
817  ilUtil::sendFailure($status->getTranslatedReason(), true);
820  $GLOBALS['ilCtrl']->getLinkTarget($this, 'showLoginPage', '', false, false),
821  'passed_sso=1'
822  )
823  );
824  return false;
825  }
826 
827  ilUtil::sendFailure($this->lng->txt('err_wrong_login'));
828  $this->showLoginPage();
829  return false;
830  }
const STATUS_AUTHENTICATION_FAILED
Factory for auth frontend classes.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
const AUTH_APACHE
getLogger()
Get logger.
showLoginPage(ilPropertyFormGUI $form=null)
static appendUrlParameterString($a_url, $a_par, $xml_style=false)
append URL parameter string ("par1=value1&par2=value2...") to given URL string
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static getInstance()
Get status instance.
static getLogger($a_component_id)
Get component logger.
static redirect($a_script)
http redirect to other script
const STATUS_ACCOUNT_MIGRATION_REQUIRED
+ Here is the call graph for this function:

◆ doCasAuthentication()

ilStartUpGUI::doCasAuthentication ( )
protected

Try CAS auth.

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

References $DIC, $GLOBALS, League\OAuth2\Client\Provider\$provider, array, AUTH_CAS, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ilAuthStatus\getInstance(), getLogger(), ilUtil\sendFailure(), showLoginPage(), ilAuthStatus\STATUS_AUTHENTICATED, and ilAuthStatus\STATUS_AUTHENTICATION_FAILED.

727  {
728  global $DIC;
729 
730  $this->getLogger()->debug('Trying cas authentication');
731 
732  include_once './Services/CAS/classes/class.ilAuthFrontendCredentialsCAS.php';
733  $credentials = new ilAuthFrontendCredentialsCAS();
734 
735  include_once './Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
736  $provider_factory = new ilAuthProviderFactory();
737  $provider = $provider_factory->getProviderByAuthMode($credentials, AUTH_CAS);
738 
739  include_once './Services/Authentication/classes/class.ilAuthStatus.php';
740  $status = ilAuthStatus::getInstance();
741 
742  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
743  $frontend_factory = new ilAuthFrontendFactory();
744  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
745  $frontend = $frontend_factory->getFrontend(
746  $GLOBALS['DIC']['ilAuthSession'],
747  $status,
748  $credentials,
750  );
751 
752  $frontend->authenticate();
753  switch($status->getStatus()) {
755  $this->getLogger()->debug('Authentication successful.');
756  ilInitialisation::redirectToStartingPage();
757  break;
758 
760  default:
761  ilUtil::sendFailure($DIC->language()->txt($status->getReason()));
762  $this->showLoginPage();
763  return false;
764  }
765  }
const STATUS_AUTHENTICATION_FAILED
Factory for auth frontend classes.
const AUTH_CAS
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
getLogger()
Get logger.
showLoginPage(ilPropertyFormGUI $form=null)
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static getInstance()
Get status instance.
global $DIC
Auth frontend credentials for CAS auth.
+ Here is the call graph for this function:

◆ doMigration()

ilStartUpGUI::doMigration ( )
protected

Do migration of existing ILIAS database user account.

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

References $_POST, $GLOBALS, League\OAuth2\Client\Provider\$provider, array, AUTH_LOCAL, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ilSession\get(), ilAuthStatus\getInstance(), getLogger(), ilAuthFrontend\MIG_TRIGGER_AUTHMODE, ilUtil\sendFailure(), and ilAuthStatus\STATUS_AUTHENTICATED.

Referenced by migrateAccount().

1398  {
1399  include_once './Services/Authentication/classes/class.ilAuthFactory.php';
1400 
1401  $this->logger->debug('Starting account migration for user: ' . (string) ilSession::get('mig_ext_account'));
1402 
1403  // try database authentication
1404  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentials.php';
1405  $credentials = new ilAuthFrontendCredentials();
1406  $credentials->setUsername((string) $_POST['mig_username']);
1407  $credentials->setPassword((string) $_POST['mig_password']);
1408 
1409  include_once './Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
1410  $provider_factory = new ilAuthProviderFactory();
1411  $provider = $provider_factory->getProviderByAuthMode($credentials, AUTH_LOCAL);
1412 
1413  include_once './Services/Authentication/classes/class.ilAuthStatus.php';
1414  $status = ilAuthStatus::getInstance();
1415 
1416  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
1417  $frontend_factory = new ilAuthFrontendFactory();
1418  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
1419  $frontend = $frontend_factory->getFrontend(
1420  $GLOBALS['DIC']['ilAuthSession'],
1421  $status,
1422  $credentials,
1423  array($provider)
1424  );
1425 
1426  $frontend->authenticate();
1427 
1428  switch($status->getStatus())
1429  {
1431  $this->getLogger()->debug('Account migration: authentication successful for ' . (string) $_POST['mig_username']);
1432 
1433  $provider = $provider_factory->getProviderByAuthMode(
1434  $credentials,
1436  );
1437  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
1438  $frontend = $frontend_factory->getFrontend(
1439  $GLOBALS['DIC']['ilAuthSession'],
1440  $status,
1441  $credentials,
1442  array($provider)
1443  );
1444  if(
1445  $frontend->migrateAccount($GLOBALS['DIC']['ilAuthSession'])
1446  )
1447  {
1448  include_once './Services/Init/classes/class.ilInitialisation.php';
1449  ilInitialisation::redirectToStartingPage();
1450  }
1451  else
1452  {
1453  ilUtil::sendFailure($this->lng->txt('err_wrong_login'),true);
1454  $this->ctrl->redirect($this, 'showAccountMigration');
1455  }
1456  break;
1457 
1458  default:
1459  $this->getLogger()->info('Account migration failed for user ' . (string) $_POST['mig_username']);
1460  $this->showAccountMigration($GLOBALS['lng']->txt('err_wrong_login'));
1461  return false;
1462  }
1463  }
Factory for auth frontend classes.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static get($a_var)
Get a value.
getLogger()
Get logger.
const AUTH_LOCAL
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static getInstance()
Get status instance.
$_POST["username"]
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ doMigrationNewAccount()

ilStartUpGUI::doMigrationNewAccount ( )
protected

Create new account for migration.

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

References $GLOBALS, League\OAuth2\Client\Provider\$provider, array, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ilSession\get(), ilAuthStatus\getInstance(), ilAuthFrontend\MIG_EXTERNAL_ACCOUNT, ilAuthFrontend\MIG_TRIGGER_AUTHMODE, and ilUtil\sendFailure().

Referenced by migrateAccount().

1355  {
1356  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontend.php';
1357 
1358  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentials.php';
1359  $credentials = new ilAuthFrontendCredentials();
1360  $credentials->setUsername(ilSession::get(ilAuthFrontend::MIG_EXTERNAL_ACCOUNT));
1361 
1362  include_once './Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
1363  $provider_factory = new ilAuthProviderFactory();
1364  $provider = $provider_factory->getProviderByAuthMode($credentials, ilSession::get(ilAuthFrontend::MIG_TRIGGER_AUTHMODE));
1365 
1366  $this->logger->debug('Using provider: ' . get_class($provider).' for further processing.');
1367 
1368  include_once './Services/Authentication/classes/class.ilAuthStatus.php';
1369  $status = ilAuthStatus::getInstance();
1370 
1371  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
1372  $frontend_factory = new ilAuthFrontendFactory();
1373  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
1374  $frontend = $frontend_factory->getFrontend(
1375  $GLOBALS['DIC']['ilAuthSession'],
1376  $status,
1377  $credentials,
1378  array($provider)
1379  );
1380 
1381  if($frontend->migrateAccountNew())
1382  {
1383  include_once './Services/Init/classes/class.ilInitialisation.php';
1384  ilInitialisation::redirectToStartingPage();
1385  }
1386 
1387  ilUtil::sendFailure($this->lng->txt('err_wrong_login'));
1388  $this->ctrl->redirect($this, 'showAccountMigration');
1389  }
Factory for auth frontend classes.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static get($a_var)
Get a value.
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static getInstance()
Get status instance.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ doShibbolethAuthentication()

ilStartUpGUI::doShibbolethAuthentication ( )
protected

Trying shibboleth authentication.

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

References $GLOBALS, League\OAuth2\Client\Provider\$provider, array, AUTH_SHIBBOLETH, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ilAuthStatus\getInstance(), getLogger(), ilLoggerFactory\getLogger(), ilUtil\sendFailure(), showLoginPage(), ilAuthStatus\STATUS_ACCOUNT_MIGRATION_REQUIRED, ilAuthStatus\STATUS_AUTHENTICATED, and ilAuthStatus\STATUS_AUTHENTICATION_FAILED.

675  {
676  $this->getLogger()->debug('Trying shibboleth authentication');
677 
678  include_once './Services/AuthShibboleth/classes/class.ilAuthFrontendCredentialsShibboleth.php';
679  $credentials = new ilAuthFrontendCredentialsShibboleth();
680  $credentials->initFromRequest();
681 
682  include_once './Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
683  $provider_factory = new ilAuthProviderFactory();
684  $provider = $provider_factory->getProviderByAuthMode($credentials, AUTH_SHIBBOLETH);
685 
686  include_once './Services/Authentication/classes/class.ilAuthStatus.php';
687  $status = ilAuthStatus::getInstance();
688 
689  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
690  $frontend_factory = new ilAuthFrontendFactory();
691  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
692  $frontend = $frontend_factory->getFrontend(
693  $GLOBALS['DIC']['ilAuthSession'],
694  $status,
695  $credentials,
697  );
698 
699  $frontend->authenticate();
700 
701  switch($status->getStatus())
702  {
704  ilLoggerFactory::getLogger('auth')->debug('Authentication successful; Redirecting to starting page.');
705  include_once './Services/Init/classes/class.ilInitialisation.php';
706  ilInitialisation::redirectToStartingPage();
707  return;
708 
710  return $GLOBALS['ilCtrl']->redirect($this, 'showAccountMigration');
711 
713  ilUtil::sendFailure($status->getTranslatedReason(),true);
714  $GLOBALS['ilCtrl']->redirect($this, 'showLoginPage');
715  return false;
716  }
717 
718  ilUtil::sendFailure($this->lng->txt('err_wrong_login'));
719  $this->showLoginPage();
720  return false;
721  }
const STATUS_AUTHENTICATION_FAILED
Factory for auth frontend classes.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
const AUTH_SHIBBOLETH
getLogger()
Get logger.
showLoginPage(ilPropertyFormGUI $form=null)
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static getInstance()
Get status instance.
static getLogger($a_component_id)
Get component logger.
const STATUS_ACCOUNT_MIGRATION_REQUIRED
+ Here is the call graph for this function:

◆ doStandardAuthentication()

ilStartUpGUI::doStandardAuthentication ( )
protected

Check form input; authenticate user.

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

References $GLOBALS, ilAuthModeDetermination\_getInstance(), ilAuthUtils\_hasMultipleAuthenticationMethods(), ilObjUser\_lookupLogin(), ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ilAuthStatus\getInstance(), getLogger(), ilLoggerFactory\getLogger(), initStandardLoginForm(), ilUtil\sendFailure(), showCodeForm(), showLoginPage(), ilAuthStatus\STATUS_ACCOUNT_MIGRATION_REQUIRED, ilAuthStatus\STATUS_AUTHENTICATED, ilAuthStatus\STATUS_AUTHENTICATION_FAILED, and ilAuthStatus\STATUS_CODE_ACTIVATION_REQUIRED.

836  {
837  $form = $this->initStandardLoginForm();
838  if($form->checkInput())
839  {
840  $this->getLogger()->debug('Trying to authenticate user.');
841 
842  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentials.php';
843  $credentials = new ilAuthFrontendCredentials();
844  $credentials->setUsername($form->getInput('username'));
845  $credentials->setPassword($form->getInput('password'));
846  $credentials->setCaptchaCode($form->getInput('captcha_code'));
847 
848  // set chosen auth mode
849  include_once './Services/Authentication/classes/class.ilAuthModeDetermination.php';
851  if(ilAuthUtils::_hasMultipleAuthenticationMethods() and $det->isManualSelection())
852  {
853  $credentials->setAuthMode($form->getInput('auth_mode'));
854  }
855 
856  include_once './Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
857  $provider_factory = new ilAuthProviderFactory();
858  $providers = $provider_factory->getProviders($credentials);
859 
860  include_once './Services/Authentication/classes/class.ilAuthStatus.php';
861  $status = ilAuthStatus::getInstance();
862 
863  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
864  $frontend_factory = new ilAuthFrontendFactory();
865  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
866  $frontend = $frontend_factory->getFrontend(
867  $GLOBALS['DIC']['ilAuthSession'],
868  $status,
869  $credentials,
870  $providers
871  );
872 
873  $frontend->authenticate();
874 
875  switch($status->getStatus())
876  {
878  ilLoggerFactory::getLogger('auth')->debug('Authentication successful; Redirecting to starting page.');
879  include_once './Services/Init/classes/class.ilInitialisation.php';
880  ilInitialisation::redirectToStartingPage();
881  return;
882 
884  return $this->showCodeForm(ilObjUser::_lookupLogin($status->getAuthenticatedUserId()));
885 
887  return $GLOBALS['ilCtrl']->redirect($this, 'showAccountMigration');
888 
890  ilUtil::sendFailure($status->getTranslatedReason());
891  return $this->showLoginPage($form);
892  }
893 
894  }
895  ilUtil::sendFailure($this->lng->txt('err_wrong_login'));
896  $this->showLoginPage($form);
897  return false;
898  }
static _lookupLogin($a_user_id)
lookup login
showCodeForm($a_username=null, $a_form=null)
static _hasMultipleAuthenticationMethods()
const STATUS_AUTHENTICATION_FAILED
Factory for auth frontend classes.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
getLogger()
Get logger.
initStandardLoginForm()
Initialize the standard.
showLoginPage(ilPropertyFormGUI $form=null)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const STATUS_CODE_ACTIVATION_REQUIRED
static getInstance()
Get status instance.
static getLogger($a_component_id)
Get component logger.
const STATUS_ACCOUNT_MIGRATION_REQUIRED
+ Here is the call graph for this function:

◆ executeCommand()

ilStartUpGUI::executeCommand ( )

execute command

See also
register.php

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

References $cmd, and array.

Referenced by jumpToPasswordAssistance(), and jumpToRegistration().

44  {
45  $cmd = $this->ctrl->getCmd("processIndexPHP",array('processIndexPHP','showLoginPage'));
46  $next_class = $this->ctrl->getNextClass($this);
47 
48  switch($next_class)
49  {
50  case 'ilLoginPageGUI':
51  break;
52 
53  case "ilaccountregistrationgui":
54  require_once("Services/Registration/classes/class.ilAccountRegistrationGUI.php");
55  return $this->ctrl->forwardCommand(new ilAccountRegistrationGUI());
56 
57  case "ilpasswordassistancegui":
58  require_once("Services/Init/classes/class.ilPasswordAssistanceGUI.php");
59  return $this->ctrl->forwardCommand(new ilPasswordAssistanceGUI());
60 
61  default:
62  return $this->$cmd();
63  }
64  }
Class ilAccountRegistrationGUI.
$cmd
Definition: sahs_server.php:35
Create styles array
The data for the language used.
Password assistance facility for users who have forgotten their password or for users for whom no pas...
+ Here is the caller graph for this function:

◆ getAcceptance()

ilStartUpGUI::getAcceptance ( )
protected

◆ getLanguageSelection()

static ilStartUpGUI::getLanguageSelection ( )
staticprotected

language selection list

Returns
string ilGroupedList

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

References ilMainMenuGUI\getLanguageSelection().

2388  {
2389  include_once("./Services/MainMenu/classes/class.ilMainMenuGUI.php");
2391  }
static getLanguageSelection($a_in_topbar=false)
+ Here is the call graph for this function:

◆ getLogger()

ilStartUpGUI::getLogger ( )

Get logger.

Returns

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

References $logger.

Referenced by doApacheAuthentication(), doCasAuthentication(), doMigration(), doShibbolethAuthentication(), doStandardAuthentication(), showLogin(), and showLoginPage().

71  {
72  return $this->logger;
73  }
+ Here is the caller graph for this function:

◆ getLoginPageEditorHTML()

ilStartUpGUI::getLoginPageEditorHTML ( )
protected

Get HTML of ILIAS login page editor.

Returns
string html

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

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

Referenced by showLogin(), and showLoginPage().

1084  {
1085  global $lng, $tpl;
1086 
1087  include_once './Services/Authentication/classes/class.ilAuthLoginPageEditorSettings.php';
1089  $active_lang = $lpe->getIliasEditorLanguage($lng->getLangKey());
1090 
1091  if(!$active_lang)
1092  {
1093  return '';
1094  }
1095 
1096  // if page does not exist, return nothing
1097  include_once './Services/COPage/classes/class.ilPageUtil.php';
1098  if(!ilPageUtil::_existsAndNotEmpty('auth', ilLanguage::lookupId($active_lang)))
1099  {
1100  return '';
1101  }
1102 
1103  include_once './Services/Authentication/classes/class.ilLoginPage.php';
1104  include_once './Services/Authentication/classes/class.ilLoginPageGUI.php';
1105 
1106  include_once("./Services/Style/Content/classes/class.ilObjStyleSheet.php");
1107  $tpl->setVariable("LOCATION_CONTENT_STYLESHEET",ilObjStyleSheet::getContentStylePath(0));
1108  $tpl->setCurrentBlock("SyntaxStyle");
1109  $tpl->setVariable("LOCATION_SYNTAX_STYLESHEET",ilObjStyleSheet::getSyntaxStylePath());
1110  $tpl->parseCurrentBlock();
1111 
1112  // get page object
1113  $page_gui = new ilLoginPageGUI(ilLanguage::lookupId($active_lang));
1114 
1115  include_once("./Services/Style/Content/classes/class.ilObjStyleSheet.php");
1116  $page_gui->setStyleId(0, 'auth');
1117 
1118  $page_gui->setPresentationTitle("");
1119  $page_gui->setTemplateOutput(false);
1120  $page_gui->setHeader("");
1121  $ret = $page_gui->showPage();
1122 
1123  return $ret;
1124  }
Login page GUI class.
global $tpl
Definition: ilias.php:8
static _existsAndNotEmpty($a_parent_type, $a_id, $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages) ...
static getSyntaxStylePath()
get syntax style path
static getContentStylePath($a_style_id)
get content style path
$ret
Definition: parser.php:6
static lookupId($a_lang_key)
Lookup obj_id of language ilDB $ilDB.
static getInstance()
Get singelton instance.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initCodeForm()

ilStartUpGUI::initCodeForm (   $a_username)
protected

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

References $ilCtrl, $lng, and ilFormPropertyGUI\setRequired().

Referenced by processCode(), and showCodeForm().

477  {
478  global $lng, $ilCtrl;
479 
480  $lng->loadLanguageModule("auth");
481 
482  include_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
483 
484  $form = new ilPropertyFormGUI();
485  $form->setFormAction($ilCtrl->getFormAction($this, 'showcodeform'));
486  $form->setTitle($lng->txt('auth_account_code_title'));
487 
488  $count = new ilTextInputGUI($lng->txt('auth_account_code'), 'code');
489  $count->setRequired(true);
490  $count->setInfo($lng->txt('auth_account_code_info'));
491  $form->addItem($count);
492 
493  // #11658
494  $uname = new ilHiddenInputGUI("uname");
495  $uname->setValue($a_username);
496  $form->addItem($uname);
497 
498  $form->addCommandButton('processCode', $lng->txt('send'));
499 
500  return $form;
501  }
This class represents a property form user interface.
global $ilCtrl
Definition: ilias.php:18
This class represents a hidden form property in a property form.
This class represents a text property in a property form.
setRequired($a_required)
Set Required.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initStandardLoginForm()

ilStartUpGUI::initStandardLoginForm ( )
protected

Initialize the standard.

Returns

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

References ilAuthModeDetermination\_getInstance(), ilAuthUtils\_getMultipleAuthModeOptions(), ilAuthUtils\_hasMultipleAuthenticationMethods(), array, ilFormPropertyGUI\setRequired(), ilTextInputGUI\setSize(), and ilPasswordInputGUI\setUseStripSlashes().

Referenced by doStandardAuthentication(), and showLoginForm().

599  {
600  include_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
601  $form = new ilPropertyFormGUI();
602  $form->setFormAction($this->ctrl->getFormAction($this,''));
603  $form->setName("formlogin");
604  $form->setShowTopButtons(false);
605  $form->setTitle($this->lng->txt("login_to_ilias"));
606 
607  include_once './Services/Authentication/classes/class.ilAuthModeDetermination.php';
609 
610  if(ilAuthUtils::_hasMultipleAuthenticationMethods() and $det->isManualSelection())
611  {
612  $visible_auth_methods = array();
613  $radg = new ilRadioGroupInputGUI($this->lng->txt("auth_selection"), "auth_mode");
614  foreach(ilAuthUtils::_getMultipleAuthModeOptions($this->lng) as $key => $option)
615  {
616  if(isset($option['hide_in_ui']) && $option['hide_in_ui'])
617  {
618  continue;
619  }
620 
621  $op1 = new ilRadioOption($option['txt'], $key);
622  $radg->addOption($op1);
623  if (isset($option['checked']))
624  {
625  $radg->setValue($key);
626  }
627  $visible_auth_methods[] = $op1;
628  }
629 
630  if(count($visible_auth_methods) == 1)
631  {
632  $first_auth_method = current($visible_auth_methods);
633  $hidden_auth_method = new ilHiddenInputGUI("auth_mode");
634  $hidden_auth_method->setValue($first_auth_method->getValue());
635  $form->addItem($hidden_auth_method);
636  }
637  else
638  {
639  $form->addItem($radg);
640  }
641  }
642 
643  $ti = new ilTextInputGUI($this->lng->txt("username"), "username");
644  $ti->setSize(20);
645  $ti->setRequired(true);
646  $form->addItem($ti);
647 
648  $pi = new ilPasswordInputGUI($this->lng->txt("password"), "password");
649  $pi->setUseStripSlashes(false);
650  $pi->setRetype(false);
651  $pi->setSkipSyntaxCheck(true);
652  $pi->setSize(20);
653  $pi->setDisableHtmlAutoComplete(false);
654  $pi->setRequired(true);
655  $form->addItem($pi);
656 
657  require_once 'Services/Captcha/classes/class.ilCaptchaUtil.php';
658  if(ilCaptchaUtil::isActiveForLogin())
659  {
660  require_once 'Services/Captcha/classes/class.ilCaptchaInputGUI.php';
661  $captcha = new ilCaptchaInputGUI($this->lng->txt('captcha_code'), 'captcha_code');
662  $captcha->setRequired(true);
663  $form->addItem($captcha);
664  }
665 
666  $form->addCommandButton("doStandardAuthentication", $this->lng->txt("log_in"));
667 
668  return $form;
669  }
This class represents an option in a radio group.
static _hasMultipleAuthenticationMethods()
This class represents a property form user interface.
This class represents a captcha input in a property form.
This class represents a hidden form property in a property form.
This class represents a property in a property form.
setUseStripSlashes($a_stat)
En/disable use of stripslashes.
static _getMultipleAuthModeOptions($lng)
setSize($a_size)
Set Size.
This class represents a text property in a property form.
This class represents a password property in a property form.
Create styles array
The data for the language used.
setRequired($a_required)
Set Required.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ jumpToPasswordAssistance()

ilStartUpGUI::jumpToPasswordAssistance ( )

jump to password assistance

See also
pwassist.php

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

References $GLOBALS, array, executeCommand(), ilSession\SESSION_CLOSE_USER, ilSession\setClosingContext(), showLoginPage(), and user().

91  {
92  $this->ctrl->setCmdClass("ilpasswordassistancegui");
93  $this->ctrl->setCmd("");
94  $this->executeCommand();
95  }
executeCommand()
execute command
+ Here is the call graph for this function:

◆ jumpToRegistration()

ilStartUpGUI::jumpToRegistration ( )

jump to registration gui

See also
register.php

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

References executeCommand().

80  {
81  $this->ctrl->setCmdClass("ilaccountregistrationgui");
82  $this->ctrl->setCmd("");
83  $this->executeCommand();
84  }
executeCommand()
execute command
+ Here is the call graph for this function:

◆ migrateAccount()

ilStartUpGUI::migrateAccount ( )
protected

Migrate Account.

Returns
bool

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

References $_POST, $GLOBALS, doMigration(), and doMigrationNewAccount().

1321  {
1322  if(!isset($_POST['account_migration']))
1323  {
1324  $this->showAccountMigration(
1325  $GLOBALS['DIC']->language()->txt('err_choose_migration_type')
1326  );
1327  return false;
1328  }
1329 
1330  if(
1331  ($_POST['account_migration'] == self::ACCOUNT_MIGRATION_MIGRATE) &&
1332  (!strlen($_POST['mig_username']) || !strlen($_POST['mig_password']))
1333  )
1334  {
1335  $this->showAccountMigration(
1336  $GLOBALS['DIC']->language()->txt('err_wrong_login')
1337  );
1338  return false;
1339  }
1340 
1341  if((int) $_POST['account_migration'] == self::ACCOUNT_MIGRATION_MIGRATE)
1342  {
1343  return $this->doMigration();
1344  }
1345  if((int) $_POST['account_migration'] == static::ACCOUNT_MIGRATION_NEW)
1346  {
1347  return $this->doMigrationNewAccount();
1348  }
1349  }
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
doMigrationNewAccount()
Create new account for migration.
doMigration()
Do migration of existing ILIAS database user account.
$_POST["username"]
+ Here is the call graph for this function:

◆ migrateAccount2()

ilStartUpGUI::migrateAccount2 ( )

migrate account

public

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

References $_POST, $ilLog, $lng, League\OAuth2\Client\Provider\$provider, ilAuthModeDetermination\_getInstance(), ilAuthUtils\_hasMultipleAuthenticationMethods(), ilObjUser\_lookupId(), AUTH_LOCAL, ilAuthFactory\factory(), ilSession\get(), ilLoggerFactory\getLogger(), ilAuthStatus\STATUS_AUTHENTICATED, and ilUtil\stripSlashes().

1473  {
1474  global $lng,$ilClientIniFile,$ilLog,$rbacadmin;
1475 
1476  $lng->loadLanguageModule('auth');
1477 
1478  if(!isset($_POST['account_migration']))
1479  {
1480  $this->showAccountMigration($lng->txt('err_choose_migration_type'));
1481  return false;
1482  }
1483 
1484  if(
1485  $_POST['account_migration'] == static::ACCOUNT_MIGRATION_MIGRATE and
1486  (!strlen($_POST['mig_username']) or !strlen($_POST['mig_password'])))
1487  {
1488  $this->showAccountMigration($lng->txt('err_wrong_login'));
1489  return false;
1490  }
1491 
1492  if($_POST['account_migration'] == static::ACCOUNT_MIGRATION_MIGRATE)
1493  {
1494  if(!$user_id = ilObjUser::_lookupId(ilUtil::stripSlashes($_POST['mig_username'])))
1495  {
1496  $this->showAccountMigration($lng->txt('err_wrong_login'));
1497  return false;
1498  }
1499  include_once './Services/Authentication/classes/class.ilAuthFactory.php';
1500  include_once './Services/Database/classes/class.ilAuthContainerMDB2.php';
1501 
1502  // try database authentication
1503  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentials.php';
1504  $credentials = new ilAuthFrontendCredentials();
1505  $credentials->setUsername($_POST['mig_username']);
1506  $credentials->setPassword($_POST['mig_password']);
1507 
1508  // set chosen auth mode
1509  include_once './Services/Authentication/classes/class.ilAuthModeDetermination.php';
1511  if(ilAuthUtils::_hasMultipleAuthenticationMethods() and $det->isManualSelection())
1512  {
1513  $credentials->setAuthMode($form->getInput('auth_mode'));
1514  }
1515 
1516  include_once './Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
1517  $provider_factory = new ilAuthProviderFactory();
1518  $provider = $provider_factory->getProviderByAuthMode($credentials, AUTH_LOCAL);
1519  $provider->getProviderByAuthMode($credentials, AUTH_LOCAL);
1520 
1521  $status = new ilAuthStatus();
1522  $provider->doAuthentication($status);
1523  switch($status->getStatus())
1524  {
1526  break;
1527 
1528  default:
1529  $this->showAccountMigration($lng->txt('err_wrong_login'));
1530  return false;
1531  }
1532  // auth success
1533 
1534 
1535 
1537  $ilAuth->start();
1538  if(!$ilAuth->checkAuth())
1539  {
1540  $ilAuth->logout();
1541  $this->showAccountMigration($lng->txt('err_wrong_login'));
1542  return false;
1543  }
1544 
1545  $user = new ilObjUser($user_id);
1546  $user->setAuthMode(ilSession::get('tmp_auth_mode'));
1547 
1548  ilLoggerFactory::getLogger('auth')->debug('Auth mode is: ' . ilSession::get('tmp_auth_mode'));
1549 
1550  $user->setExternalAccount(ilSession::get('tmp_external_account'));
1551  $user->setActive(true);
1552  $user->update();
1553 
1554  // Assign to default role
1555  if(is_array(ilSession::get('tmp_roles')))
1556  {
1557  foreach(ilSession::get('tmp_roles') as $role)
1558  {
1559  $rbacadmin->assignUser((int) $role,$user->getId());
1560  }
1561  }
1562 
1563  // Log migration
1564  ilLoggerFactory::getLogger('auth')->info('Migrated '. ilSession::get('tmp_external_account').' to ILIAS account '. $user->getLogin());
1565  }
1566  elseif($_POST['account_migration'] == static::ACCOUNT_MIGRATION_NEW)
1567  {
1568  switch(ilSession::get('tmp_auth_mode_type'))
1569  {
1570  case 'apache':
1571  $_POST['username'] = ilSession::get('tmp_external_account');
1572  $_POST['password'] = ilSession::get('tmp_pass');
1573 
1574  include_once('Services/AuthApache/classes/class.ilAuthContainerApache.php');
1575  $container = new ilAuthContainerApache();
1576  $container->forceCreation(true);
1577  $ilAuth = ilAuthFactory::factory($container);
1578  $ilAuth->start();
1579  break;
1580 
1581  case 'ldap':
1582  $_POST['username'] = ilSession::get('tmp_external_account');
1583  $_POST['password'] = ilSession::get('tmp_pass');
1584  $server_id = ilSession::get('tmp_auth_mode_id');
1585 
1586  include_once('Services/LDAP/classes/class.ilAuthContainerLDAP.php');
1587  $container = new ilAuthContainerLDAP($server_id);
1588  $container->forceCreation(true);
1589  $ilAuth = ilAuthFactory::factory($container);
1590  $ilAuth->start();
1591  break;
1592 
1593  case 'radius':
1594  $_POST['username'] = ilSession::get('tmp_external_account');
1595  $_POST['password'] = ilSession::get('tmp_pass');
1596 
1597  include_once './Services/Authentication/classes/class.ilAuthFactory.php';
1598  include_once './Services/Radius/classes/class.ilAuthContainerRadius.php';
1599 
1600  $container = new ilAuthContainerRadius();
1601  $container->forceCreation(true);
1602  $ilAuth = ilAuthFactory::factory($container);
1603  $ilAuth->start();
1604  break;
1605  }
1606  }
1607 
1608  include_once './Services/Init/classes/class.ilInitialisation.php';
1609  ilInitialisation::redirectToStartingPage();
1610  return;
1611  }
static _hasMultipleAuthenticationMethods()
Overwritten Pear class AuthContainerLDAP This class is overwritten to support nested groups...
static get($a_var)
Get a value.
static _lookupId($a_user_str)
Lookup id by login.
Authentication against ILIAS database.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
const AUTH_LOCAL
Overwritten Pear class AuthContainerRadius This class is overwritten to support to perform Radius aut...
Authentication against ILIAS database.
static factory(ilAuthContainerBase $deco)
The factory.
static getLogger($a_component_id)
Get component logger.
Auth status implementation.
$_POST["username"]
+ Here is the call graph for this function:

◆ processCode()

ilStartUpGUI::processCode ( )
protected
Todo:
has to be refactored.

ilLanguage $lng type $ilAuth type $ilCtrl

Returns
boolean

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

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

511  {
512  global $lng, $ilAuth, $ilCtrl;
513 
514  $uname = $_POST["uname"];
515 
516  $form = $this->initCodeForm($uname);
517  if($uname && $form->checkInput())
518  {
519  $code = $form->getInput("code");
520 
521  include_once "Services/User/classes/class.ilAccountCode.php";
523  {
524  $valid_until = ilAccountCode::getCodeValidUntil($code);
525 
526  if(!$user_id = ilObjUser::_lookupId($uname))
527  {
528  $this->showLogin();
529  return false;
530  }
531 
532  $invalid_code = false;
533  $user = new ilObjUser($user_id);
534 
535  if($valid_until === "0")
536  {
537  $user->setTimeLimitUnlimited(true);
538  }
539  else
540  {
541  if(is_numeric($valid_until))
542  {
543  $valid_until = strtotime("+".$valid_until."days");
544  }
545  else
546  {
547  $valid_until = explode("-", $valid_until);
548  $valid_until = mktime(23, 59, 59, $valid_until[1],
549  $valid_until[2], $valid_until[0]);
550  if($valid_until < time())
551  {
552  $invalid_code = true;
553  }
554  }
555 
556  if(!$invalid_code)
557  {
558  $user->setTimeLimitUnlimited(false);
559  $user->setTimeLimitUntil($valid_until);
560  }
561  }
562 
563  if(!$invalid_code)
564  {
565  $user->setActive(true);
566 
568 
569  // apply registration code role assignments
571 
572  // apply registration code time limits
574 
575  $user->update();
576 
577  $ilCtrl->setParameter($this, "cu", 1);
578  $GLOBALS['DIC']->language()->loadLanguageModule('auth');
579  ilUtil::sendSuccess($GLOBALS['DIC']->language()->txt('auth_activation_code_success'),true);
580  $ilCtrl->redirect($this, "showLoginPage");
581  }
582  }
583 
584  $lng->loadLanguageModule("user");
585  $field = $form->getItemByPostVar("code");
586  $field->setAlert($lng->txt("user_account_code_not_valid"));
587  }
588 
589  $form->setValuesByPost();
590  $this->showCodeForm($uname, $form);
591  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static applyRoleAssignments(ilObjUser $user, $code)
initCodeForm($a_username)
static applyAccessLimits(ilObjUser $user, $code)
showCodeForm($a_username=null, $a_form=null)
$code
Definition: example_050.php:99
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static useCode($code)
static _lookupId($a_user_str)
Lookup id by login.
global $ilCtrl
Definition: ilias.php:18
showLogin()
Show login.
static getCodeValidUntil($code)
static isUnusedCode($code)
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
$_POST["username"]
+ Here is the call graph for this function:

◆ processIndexPHP()

ilStartUpGUI::processIndexPHP ( )
protected

process index.php

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

References $_GET, $GLOBALS, $ilIliasIniFile, $ilSetting, ilInitialisation\goToPublicSection(), showClientList(), and showLoginPage().

Referenced by showClientList().

1940  {
1941  global $ilIliasIniFile, $ilAuth, $ilSetting;
1942 
1943  // In case of an valid session, redirect to starting page
1944  if($GLOBALS['DIC']['ilAuthSession']->isValid())
1945  {
1946  include_once './Services/Init/classes/class.ilInitialisation.php';
1947  ilInitialisation::redirectToStartingPage();
1948  return;
1949  }
1950  else
1951  {
1952 
1953  }
1954 
1955  // no valid session => show client list, if no client info is given
1956  if (
1957  !isset($_GET["client_id"]) &&
1958  ($_GET["cmd"] == "") &&
1959  $ilIliasIniFile->readVariable("clients","list"))
1960  {
1961  return $this->showClientList();
1962  }
1963 
1964  if($GLOBALS['ilSetting']->get('pub_section', false)
1965  )
1966  {
1968  }
1969 
1970  // otherwise show login page
1971  return $this->showLoginPage();
1972  }
$_GET["client_id"]
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static goToPublicSection()
go to public section
showLoginPage(ilPropertyFormGUI $form=null)
showClientList()
show client list
global $ilSetting
Definition: privfeed.php:17
$ilIliasIniFile
+ 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 1234 of file class.ilStartUpGUI.php.

References $_POST, $lng, $new, $pass, $tpl, ilRadioOption\addSubItem(), array, ilUtil\prepareFormOutput(), ilUtil\sendFailure(), ilRadioGroupInputGUI\setValue(), and ilRadioOption\setValue().

Referenced by showLogin(), and showLoginPage().

1235  {
1236  return str_replace(
1237  array(
1238  '[list-language-selection] ',
1239  '[list-registration-link]',
1240  '[list-user-agreement]',
1241  '[list-login-form]',
1242  '[list-cas-login-form]',
1243  '[list-shibboleth-login-form]'
1244  ),
1245  array('','','','','','',''),
1246  $page_editor_html
1247  );
1248  }
Create styles array
The data for the language used.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showCASLoginForm()

ilStartUpGUI::showCASLoginForm (   $page_editor_html)
protected

Show cas login ilSetting $ilSetting.

Parameters
string$page_editor_html
Returns
string $page_editor_html

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

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

Referenced by showLogin(), and showLoginPage().

970  {
971  global $ilSetting, $lng;
972 
973 
974  // cas login link
975  if ($ilSetting->get("cas_active"))
976  {
977  $tpl = new ilTemplate('tpl.login_form_cas.html', true, true, 'Services/Init');
978  $tpl->setVariable("TXT_CAS_LOGIN", $lng->txt("login_to_ilias_via_cas"));
979  $tpl->setVariable("TXT_CAS_LOGIN_BUTTON", ilUtil::getImagePath("cas_login_button.png"));
980  $tpl->setVariable("TXT_CAS_LOGIN_INSTRUCTIONS", $ilSetting->get("cas_login_instructions"));
981  $this->ctrl->setParameter($this, "forceCASLogin", "1");
982  $tpl->setVariable("TARGET_CAS_LOGIN",$this->ctrl->getLinkTarget($this, "doCasAuthentication"));
983  $this->ctrl->setParameter($this, "forceCASLogin", "");
984 
985  return $this->substituteLoginPageElements(
986  $GLOBALS['tpl'],
987  $page_editor_html,
988  $tpl->get(),
989  '[list-cas-login-form]',
990  'CAS_LOGIN_FORM'
991  );
992  }
993  return $page_editor_html;
994  }
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
global $tpl
Definition: ilias.php:8
substituteLoginPageElements($tpl, $page_editor_html, $element_html, $placeholder, $fallback_tplvar)
Substitute login page elements.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
special template class to simplify handling of ITX/PEAR
global $ilSetting
Definition: privfeed.php:17
+ 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 1735 of file class.ilStartUpGUI.php.

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

Referenced by processIndexPHP().

1736  {
1737  global $tpl, $ilIliasIniFile, $lng;
1738 //echo "1";
1739  if (!$ilIliasIniFile->readVariable("clients","list"))
1740  {
1741  $this->processIndexPHP();
1742  return;
1743  }
1744 //echo "2";
1745  $tpl = new ilTemplate("tpl.main.html", true, true);
1746  $tpl->setAddFooter(false); // no client yet
1747 
1748  $tpl->setVariable("PAGETITLE", $lng->txt("clientlist_clientlist"));
1749  $tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
1750 
1751  // load client list template
1752  self::initStartUpTemplate("tpl.client_list.html");
1753 
1754  // load template for table
1755  $tpl->addBlockfile("CLIENT_LIST", "client_list", "tpl.table.html");
1756 
1757  // load template for table content data
1758  $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
1759 
1760  // load table content data
1761  require_once("setup/classes/class.ilClientList.php");
1762  require_once("setup/classes/class.ilClient.php");
1763  require_once("setup/classes/class.ilDBConnections.php");
1764  require_once("./Services/Table/classes/class.ilTableGUI.php");
1765  $this->db_connections = new ilDBConnections();
1766  $clientlist = new ilClientList($this->db_connections);
1767  $list = $clientlist->getClients();
1768 
1769  if (count($list) == 0)
1770  {
1771  header("Location: ./setup/setup.php");
1772  exit();
1773  }
1774 
1775  $hasPublicSection = false;
1776  foreach ($list as $key => $client)
1777  {
1778  $client->setDSN();
1779 
1780  if ($client->checkDatabaseExists(true) and $client->ini->readVariable("client","access") and $client->getSetting("setup_ok"))
1781  {
1782  $this->ctrl->setParameter($this, "client_id", $key);
1783  $tmp = array();
1784  $tmp[] = $client->getName();
1785  $tmp[] = "<a href=\""."login.php?cmd=force_login&client_id=".urlencode($key)."\">".$lng->txt("clientlist_login_page")."</a>";
1786 
1787  if($client->getSetting('pub_section'))
1788  {
1789  $hasPublicSection = true;
1790  $tmp[] = "<a href=\"" . "ilias.php?baseClass=ilRepositoryGUI&client_id=" . urlencode($key) . "\">".$lng->txt("clientlist_start_page")."</a>";
1791  }
1792  else
1793  {
1794  $tmp[] = '';
1795  }
1796 
1797  $data[] = $tmp;
1798  }
1799  }
1800 
1801  // create table
1802  $tbl = new ilTableGUI();
1803 
1804  // title & header columns
1805  if($hasPublicSection)
1806  {
1807  $tbl->setTitle($lng->txt("clientlist_available_clients"));
1808  $tbl->setHeaderNames(array($lng->txt("clientlist_installation_name"), $lng->txt("clientlist_login"), $lng->txt("clientlist_public_access")));
1809  $tbl->setHeaderVars(array("name","index","login"));
1810  $tbl->setColumnWidth(array("50%","25%","25%"));
1811  }
1812  else
1813  {
1814  $tbl->setTitle($lng->txt("clientlist_available_clients"));
1815  $tbl->setHeaderNames(array($lng->txt("clientlist_installation_name"), $lng->txt("clientlist_login"), ''));
1816  $tbl->setHeaderVars(array("name","login",''));
1817  $tbl->setColumnWidth(array("70%","25%",'1px'));
1818  }
1819 
1820  // control
1821  $tbl->setOrderColumn($_GET["sort_by"],"name");
1822  $tbl->setOrderDirection($_GET["sort_order"]);
1823  $tbl->setLimit($_GET["limit"]);
1824  $tbl->setOffset($_GET["offset"]);
1825 
1826  // content
1827  $tbl->setData($data);
1828 
1829  $tbl->disable("icon");
1830  $tbl->disable("numinfo");
1831  $tbl->disable("sort");
1832  $tbl->disable("footer");
1833 
1834  // render table
1835  $tbl->render();
1836  $tpl->show("DEFAULT", true, true);
1837  }
Administrates DB connections in setup.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
$_GET["client_id"]
$tbl
Definition: example_048.php:81
Class ilTableGUI.
processIndexPHP()
process index.php
global $tpl
Definition: ilias.php:8
client management
$client
special template class to simplify handling of ITX/PEAR
Add a drawing to the header
Definition: 04printing.php:69
Create styles array
The data for the language used.
$ilIliasIniFile
+ 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 459 of file class.ilStartUpGUI.php.

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

Referenced by doStandardAuthentication(), processCode(), and showLogin().

460  {
461  global $tpl, $lng;
462 
463  self::initStartUpTemplate("tpl.login_reactivate_code.html");
464 
465  ilUtil::sendFailure($lng->txt("time_limit_reached"));
466 
467  if(!$a_form)
468  {
469  $a_form = $this->initCodeForm($a_username);
470  }
471 
472  $tpl->setVariable("FORM", $a_form->getHTML());
473  $tpl->show("DEFAULT", false);
474  }
initCodeForm($a_username)
global $tpl
Definition: ilias.php:8
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLogin()

ilStartUpGUI::showLogin ( )
protected

Show login.

ilLanguage $lng

Deprecated:
since 5.2

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

References $_COOKIE, $_GET, $_SERVER, $failure, $ilSetting, $lng, $success, $tpl, AUTH_APACHE_FAILED, AUTH_CAPTCHA_INVALID, AUTH_CAS_NO_ILIAS_USER, AUTH_LDAP_NO_ILIAS_USER, AUTH_MODE_INACTIVE, AUTH_RADIUS_NO_ILIAS_USER, AUTH_SOAP_NO_ILIAS_USER, AUTH_USER_INACTIVE, AUTH_USER_SIMULTANEOUS_LOGIN, AUTH_USER_TIME_LIMIT_EXCEEDED, AUTH_USER_WRONG_IP, getLogger(), 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\setClosingContext(), ilUtil\setCookie(), showCASLoginForm(), showCodeForm(), showLoginForm(), showLoginInformation(), showRegistrationLinks(), showShibbolethLoginForm(), and ilLogLevel\WARNING.

Referenced by processCode().

209  {
210  global $ilSetting, $ilAuth, $tpl, $ilias, $lng;
211 
212  $this->getLogger()->warning('Using deprecated startup method');
213  $this->getLogger()->logStack(ilLogLevel::WARNING);
214 
215  $status = $ilAuth->getStatus();
216  if ($status == "" && isset($_GET["auth_stat"]))
217  {
218  $status = $_GET["auth_stat"];
219  }
220 
221  if($ilAuth->getAuth() && !$status)
222  {
223  // deprecated?
224  if ($_GET["rep_ref_id"] != "")
225  {
226  $_GET["ref_id"] = $_GET["rep_ref_id"];
227  }
228  include_once './Services/Init/classes/class.ilInitialisation.php';
229  ilInitialisation::redirectToStartingPage();
230  return;
231  }
232 
233  // check for session cookies enabled
234  if (!isset($_COOKIE['iltest']))
235  {
236  if (empty($_GET['cookies']))
237  {
238  $additional_params = '';
239  ilUtil::setCookie("iltest","cookie",false);
240  ilUtil::redirect("login.php?target=".$_GET["target"]."&soap_pw=".$_GET["soap_pw"].
241  "&ext_uid=".$_GET["ext_uid"]."&cookies=nocookies&client_id=".
242  rawurlencode(CLIENT_ID)."&lang=".$lng->getLangKey().$additional_params);
243  }
244  else
245  {
246  $_COOKIE['iltest'] = "";
247  }
248  }
249  else
250  {
251  unset($_GET['cookies']);
252  }
253 
254  if ($ilSetting->get("shib_active") && $ilSetting->get("shib_hos_type"))
255  {
256  require_once "./Services/AuthShibboleth/classes/class.ilShibbolethWAYF.php";
257  // Check if we user selects Home Organization
258  $WAYF = new ShibWAYF();
259  }
260 
261  if (isset($WAYF) && $WAYF->is_selection())
262  {
263  if ($WAYF->is_valid_selection())
264  {
265  // Set cookie
266  $WAYF->setSAMLCookie();
267 
268  // Redirect
269  $WAYF->redirect();
270  }
271  }
272 
273  $failure = $success = null;
274 
275  // :TODO: handle internally?
276  if (isset($_GET['reg_confirmation_msg']) && strlen(trim($_GET['reg_confirmation_msg'])))
277  {
278  $lng->loadLanguageModule('registration');
279  if($_GET['reg_confirmation_msg'] == 'reg_account_confirmation_successful')
280  {
281  $success = $lng->txt(trim($_GET['reg_confirmation_msg']));
282  }
283  else
284  {
285  $failure = $lng->txt(trim($_GET['reg_confirmation_msg']));
286  }
287  }
288  else if(isset($_GET['reached_session_limit']) && $_GET['reached_session_limit'])
289  {
290  $failure = $lng->txt("reached_session_limit");
291  }
292  else if(isset($_GET['accdel']) && $_GET['accdel'])
293  {
294  $lng->loadLanguageModule('user');
295  $failure = $lng->txt("user_account_deleted_confirmation");
296  }
297 
298  if (!empty($status))
299  {
300  switch ($status)
301  {
302  case AUTH_IDLED:
303  // lang variable err_idled not existing
304  // $tpl->setVariable(TXT_MSG_LOGIN_FAILED, $lng->txt("err_idled"));
305  // fallthrough
306 
307  case AUTH_EXPIRED:
308  $failure = $lng->txt("err_session_expired");
309  break;
310 
312  $failure = $lng->txt("err_auth_cas_no_ilias_user");
313  break;
314 
316  $failure = $lng->txt("err_auth_soap_no_ilias_user");
317  break;
318 
320  $failure = $lng->txt("err_auth_ldap_no_ilias_user");
321  break;
322 
324  $failure = $lng->txt("err_auth_radius_no_ilias_user");
325  break;
326 
327  case AUTH_MODE_INACTIVE:
328  $failure = $lng->txt("err_auth_mode_inactive");
329  break;
330 
331  case AUTH_APACHE_FAILED:
332  $failure = $lng->txt("err_auth_apache_failed");
333  break;
334 
336  $lng->loadLanguageModule('cptch');
338  $ilAuth->logout();
339  session_destroy();
340  $failure = $lng->txt("cptch_wrong_input");
341  break;
342 
343  // special cases: extended user validation failed
344  // ilAuth was successful, so we have to logout here
345 
346  case AUTH_USER_WRONG_IP:
348  $ilAuth->logout();
349  session_destroy();
350 
351  $failure = sprintf($lng->txt('wrong_ip_detected'), $_SERVER['REMOTE_ADDR']);
352  break;
353 
356  $ilAuth->logout();
357  session_destroy();
358 
359  $failure = $lng->txt("simultaneous_login_detected");
360  break;
361 
364  $username = $ilAuth->getExceededUserName(); // #16327
365  $ilAuth->logout();
366 
367  // user could reactivate by code?
368  if($ilSetting->get('user_reactivate_code'))
369  {
370  return $this->showCodeForm($username);
371  }
372 
373  session_destroy();
374 
375  $failure = $lng->txt("time_limit_reached");
376  break;
377 
378  case AUTH_USER_INACTIVE:
380  $ilAuth->logout();
381  session_destroy();
382 
383  $failure = $lng->txt("err_inactive");
384  break;
385 
386  // special cases end
387 
388 
389  case AUTH_WRONG_LOGIN:
390  default:
391  $add = "";
392  $auth_error = $ilias->getAuthError();
393  if (is_object($auth_error))
394  {
395  $add = "<br>".$auth_error->getMessage();
396  }
397  $failure = $lng->txt("err_wrong_login").$add;
398  break;
399  }
400  }
401 
402  if (isset($_GET['cu']) && $_GET['cu'])
403  {
404  $lng->loadLanguageModule("auth");
405  $success = $lng->txt("auth_account_code_used");
406  }
407 
408 
409  // --- render
410 
411  // Instantiate login template
412  self::initStartUpTemplate("tpl.login.html");
413 
414  // we need the template for this
415  if($failure)
416  {
418  }
419  else if($success)
420  {
422  }
423 
424  // Draw single page editor elements
425  $page_editor_html = $this->getLoginPageEditorHTML();
426  $page_editor_html = $this->showLoginInformation($page_editor_html);
427  $page_editor_html = $this->showLoginForm($page_editor_html);
428  $page_editor_html = $this->showCASLoginForm($page_editor_html);
429  $page_editor_html = $this->showShibbolethLoginForm($page_editor_html);
430  $page_editor_html = $this->showRegistrationLinks($page_editor_html);
431  $page_editor_html = $this->showTermsOfServiceLink($page_editor_html);
432  $page_editor_html = $this->purgePlaceholders($page_editor_html);
433 
434  // not controlled by login page editor
435  $tpl->setVariable("PAGETITLE", "- ".$lng->txt("startpage"));
436  $tpl->setVariable("ILIAS_RELEASE", $ilSetting->get("ilias_version"));
437 
438  $this->ctrl->setTargetScript("ilias.php");
439  $tpl->setVariable("PHP_SELF", $_SERVER['PHP_SELF']);
440 
441  // browser does not accept cookies
442  if (isset($_GET['cookies']) && $_GET['cookies'] == 'nocookies')
443  {
444  ilUtil::sendFailure($lng->txt("err_no_cookies"));
445  }
446 
447  if(strlen($page_editor_html))
448  {
449  $tpl->setVariable('LPE',$page_editor_html);
450  }
451 
452  $tpl->fillWindowTitle();
453  $tpl->fillCssFiles();
454  $tpl->fillJavaScriptFiles();
455 
456  $tpl->show("DEFAULT", false);
457  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
const AUTH_MODE_INACTIVE
const AUTH_USER_INACTIVE
$failure
const SESSION_CLOSE_CAPTCHA
showLoginForm($page_editor_html, ilPropertyFormGUI $form=null)
Show login form ilSetting $ilSetting.
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']
showCodeForm($a_username=null, $a_form=null)
const AUTH_USER_WRONG_IP
getLoginPageEditorHTML()
Get HTML of ILIAS login page editor.
$_GET["client_id"]
const SESSION_CLOSE_INACTIVE
showShibbolethLoginForm($page_editor_html)
Show shibboleth login form.
const AUTH_CAPTCHA_INVALID
const AUTH_RADIUS_NO_ILIAS_USER
const SESSION_CLOSE_TIME
const AUTH_CAS_NO_ILIAS_USER
const AUTH_USER_TIME_LIMIT_EXCEEDED
Class ShibbolethWAYF.
getLogger()
Get logger.
global $tpl
Definition: ilias.php:8
const AUTH_APACHE_FAILED
static setCookie($a_cookie_name, $a_cookie_value='', $a_also_set_super_global=true, $a_set_cookie_invalid=false)
$success
Definition: Utf8Test.php:86
const AUTH_SOAP_NO_ILIAS_USER
purgePlaceholders($page_editor_html)
Purge page editor html from unused placeholders.
showRegistrationLinks($page_editor_html)
Show registration, password forgotten, client slection links ilLanguage $lng ilSetting $ilSetting ...
const AUTH_USER_SIMULTANEOUS_LOGIN
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const AUTH_LDAP_NO_ILIAS_USER
const SESSION_CLOSE_SIMUL
static setClosingContext($a_context)
set closing context (for statistics)
global $ilSetting
Definition: privfeed.php:17
showLoginInformation($page_editor_html)
Show login information.
$_COOKIE['ilClientId']
Definition: BPMN2Parser.php:15
static redirect($a_script)
http redirect to other script
showCASLoginForm($page_editor_html)
Show cas login ilSetting $ilSetting.
const SESSION_CLOSE_IP
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLoginForm()

ilStartUpGUI::showLoginForm (   $page_editor_html,
ilPropertyFormGUI  $form = null 
)
protected

Show login form ilSetting $ilSetting.

Parameters
string$page_editor_html

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

References $ilSetting, $lng, $tpl, AUTH_CAS, AUTH_SHIBBOLETH, initStandardLoginForm(), and substituteLoginPageElements().

Referenced by showLogin(), and showLoginPage().

910  {
911  global $ilSetting,$lng,$tpl;
912 
913  // @todo move this to auth utils.
914  // login via ILIAS (this also includes radius and ldap)
915  // If local authentication is enabled for shibboleth users, we
916  // display the login form for ILIAS here.
917  if (($ilSetting->get("auth_mode") != AUTH_SHIBBOLETH ||
918  $ilSetting->get("shib_auth_allow_local")) &&
919  $ilSetting->get("auth_mode") != AUTH_CAS)
920  {
921  if(!$form instanceof ilPropertyFormGUI)
922  {
923  $form = $this->initStandardLoginForm();
924  }
925 
926  return $this->substituteLoginPageElements(
927  $tpl,
928  $page_editor_html,
929  $form->getHTML(),
930  '[list-login-form]',
931  'LOGIN_FORM'
932  );
933 
934  }
935  return $page_editor_html;
936  }
This class represents a property form user interface.
const AUTH_CAS
const AUTH_SHIBBOLETH
global $tpl
Definition: ilias.php:8
initStandardLoginForm()
Initialize the standard.
substituteLoginPageElements($tpl, $page_editor_html, $element_html, $placeholder, $fallback_tplvar)
Substitute login page elements.
global $ilSetting
Definition: privfeed.php:17
+ 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 943 of file class.ilStartUpGUI.php.

References $lng, and $tpl.

Referenced by showLogin(), and showLoginPage().

944  {
945  global $lng,$tpl;
946 
947  if(strlen($page_editor_html))
948  {
949  // page editor active return
950  return $page_editor_html;
951  }
952 
953  $loginSettings = new ilSetting("login_settings");
954  $information = $loginSettings->get("login_message_".$lng->getLangKey());
955 
956  if(strlen(trim($information)))
957  {
958  $tpl->setVariable("TXT_LOGIN_INFORMATION", $information);
959  }
960  return $page_editor_html;
961  }
ILIAS Setting Class.
global $tpl
Definition: ilias.php:8
+ Here is the caller graph for this function:

◆ showLoginPage()

ilStartUpGUI::showLoginPage ( ilPropertyFormGUI  $form = null)
protected
Todo:
check for forced authentication like ecs, ...

Show login page

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

References $GLOBALS, $ilSetting, $tpl, getLogger(), getLoginPageEditorHTML(), purgePlaceholders(), ilUtil\sendFailure(), showCASLoginForm(), showLoginForm(), showLoginInformation(), showRegistrationLinks(), and showShibbolethLoginForm().

Referenced by doApacheAuthentication(), doCasAuthentication(), doShibbolethAuthentication(), doStandardAuthentication(), jumpToPasswordAssistance(), and processIndexPHP().

155  {
156  global $tpl, $ilSetting;
157 
158  $this->getLogger()->debug('Showing login page');
159 
160  // try apache auth
161  include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentialsApache.php';
162  $frontend = new ilAuthFrontendCredentialsApache();
163  $frontend->tryAuthenticationOnLoginPage();
164 
165  // Instantiate login template
166  self::initStartUpTemplate("tpl.login.html");
167 
168  $page_editor_html = $this->getLoginPageEditorHTML();
169  $page_editor_html = $this->showLoginInformation($page_editor_html);
170  $page_editor_html = $this->showLoginForm($page_editor_html, $form);
171  $page_editor_html = $this->showCASLoginForm($page_editor_html);
172  $page_editor_html = $this->showShibbolethLoginForm($page_editor_html);
173  $page_editor_html = $this->showRegistrationLinks($page_editor_html);
174  $page_editor_html = $this->showTermsOfServiceLink($page_editor_html);
175 
176  $page_editor_html = $this->purgePlaceholders($page_editor_html);
177 
178  // not controlled by login page editor
179  $tpl->setVariable("PAGETITLE", "- ".$this->lng->txt("startpage"));
180  $tpl->setVariable("ILIAS_RELEASE", $ilSetting->get("ilias_version"));
181 
182  $this->ctrl->setTargetScript("ilias.php");
183 
184  // check expired session and send message
185  if($GLOBALS['DIC']['ilAuthSession']->isExpired())
186  {
187  ilUtil::sendFailure($GLOBALS['lng']->txt('auth_err_expired'));
188  }
189 
190 
191  if(strlen($page_editor_html))
192  {
193  $tpl->setVariable('LPE',$page_editor_html);
194  }
195 
196  $tpl->fillWindowTitle();
197  $tpl->fillCssFiles();
198  $tpl->fillJavaScriptFiles();
199  $tpl->show("DEFAULT", false);
200  }
showLoginForm($page_editor_html, ilPropertyFormGUI $form=null)
Show login form ilSetting $ilSetting.
getLoginPageEditorHTML()
Get HTML of ILIAS login page editor.
showShibbolethLoginForm($page_editor_html)
Show shibboleth login form.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
getLogger()
Get logger.
global $tpl
Definition: ilias.php:8
purgePlaceholders($page_editor_html)
Purge page editor html from unused placeholders.
showRegistrationLinks($page_editor_html)
Show registration, password forgotten, client slection links ilLanguage $lng ilSetting $ilSetting ...
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
global $ilSetting
Definition: privfeed.php:17
showLoginInformation($page_editor_html)
Show login information.
showCASLoginForm($page_editor_html)
Show cas login ilSetting $ilSetting.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLogout()

ilStartUpGUI::showLogout ( )

show logout screen

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

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

1617  {
1618  global $tpl, $ilSetting, $lng, $ilIliasIniFile;
1619 
1621  $GLOBALS['DIC']['ilAuthSession']->logout();
1622 
1623  $GLOBALS['ilAppEventHandler']->raise(
1624  'Services/Authentication',
1625  'afterLogout',
1626  array(
1627  'username' => $GLOBALS['DIC']->user()->getLogin()
1628  )
1629  );
1630 
1631  // reset cookie
1632  $client_id = $_COOKIE["ilClientId"];
1633  ilUtil::setCookie("ilClientId","");
1634 
1635  //instantiate logout template
1636  self::initStartUpTemplate("tpl.logout.html");
1637 
1638  if ($ilSetting->get("pub_section"))
1639  {
1640  $tpl->setCurrentBlock("homelink");
1641  $tpl->setVariable("CLIENT_ID","?client_id=".$client_id."&lang=".$lng->getLangKey());
1642  $tpl->setVariable("TXT_HOME",$lng->txt("home"));
1643  $tpl->parseCurrentBlock();
1644  }
1645 
1646  if ($ilIliasIniFile->readVariable("clients","list"))
1647  {
1648  $tpl->setCurrentBlock("client_list");
1649  $tpl->setVariable("TXT_CLIENT_LIST", $lng->txt("to_client_list"));
1650  $this->ctrl->setParameter($this, "client_id", $client_id);
1651  $tpl->setVariable("CMD_CLIENT_LIST",
1652  $this->ctrl->getLinkTarget($this, "showClientList"));
1653  $tpl->parseCurrentBlock();
1654  $this->ctrl->setParameter($this, "client_id", "");
1655  }
1656 
1657  $tpl->setVariable("TXT_PAGEHEADLINE", $lng->txt("logout"));
1658  $tpl->setVariable("TXT_LOGOUT_TEXT", $lng->txt("logout_text"));
1659  $tpl->setVariable("TXT_LOGIN", $lng->txt("login_to_ilias"));
1660  $tpl->setVariable("CLIENT_ID","?client_id=".$client_id."&lang=".$lng->getLangKey());
1661 
1662  $tpl->show();
1663  }
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
user()
Definition: user.php:4
global $tpl
Definition: ilias.php:8
static setCookie($a_cookie_name, $a_cookie_value='', $a_also_set_super_global=true, $a_set_cookie_invalid=false)
const SESSION_CLOSE_USER
Create styles array
The data for the language used.
static setClosingContext($a_context)
set closing context (for statistics)
global $ilSetting
Definition: privfeed.php:17
$_COOKIE['ilClientId']
Definition: BPMN2Parser.php:15
$ilIliasIniFile
$client_id
+ 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 1844 of file class.ilStartUpGUI.php.

References $tpl.

1845  {
1846  global $tpl;
1847 
1848  $str = "<p style=\"margin:15px;\">
1849  You need to enable Session Cookies in your Browser to use ILIAS.
1850  <br/>
1851  <br/><b>Firefox</b>
1852  <br/>Tools -> Options -> Privacy -> Cookies
1853  <br/>Enable 'Allow sites to set cookies' and activate option 'Keep
1854  <br/>cookies' auf 'until I close Firefox'
1855  <br/>
1856  <br/><b>Mozilla/Netscape</b>
1857  <br/>Edit -> Preferences -> Privacy&Security -> Cookies
1858  <br/>Go to 'Cookie Lifetime Policy' and check option 'Accept for current
1859  <br/>session only'.
1860  <br/>
1861  <br/><b>Internet Explorer</b>
1862  <br/>Tools -> Internet Options -> Privacy -> Advanced
1863  <br/>- Check 'Override automatic cookie handling'
1864  <br/>- Check 'Always allow session cookies'
1865  </p>";
1866  $tpl->setVariable("CONTENT", $str);
1867  $tpl->show();
1868  }
global $tpl
Definition: ilias.php:8

◆ showRegistrationLinks()

ilStartUpGUI::showRegistrationLinks (   $page_editor_html)
protected

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

Parameters
string$page_editor_html
Returns
string

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

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

Referenced by showLogin(), and showLoginPage().

1135  {
1136  global $lng, $ilSetting, $ilIliasIniFile, $ilAccess;
1137 
1138  $rtpl = new ilTemplate('tpl.login_registration_links.html',true,true,'Services/Init');
1139 
1140  // allow new registrations?
1141  include_once 'Services/Registration/classes/class.ilRegistrationSettings.php';
1143  {
1144  $rtpl->setCurrentBlock("new_registration");
1145  $rtpl->setVariable("REGISTER", $lng->txt("registration"));
1146  $rtpl->setVariable("CMD_REGISTER",
1147  $this->ctrl->getLinkTargetByClass("ilaccountregistrationgui", ""));
1148  $rtpl->parseCurrentBlock();
1149  }
1150  // allow password assistance? Surpress option if Authmode is not local database
1151  if ($ilSetting->get("password_assistance"))
1152  {
1153  $rtpl->setCurrentBlock("password_assistance");
1154  $rtpl->setVariable("FORGOT_PASSWORD", $lng->txt("forgot_password"));
1155  $rtpl->setVariable("FORGOT_USERNAME", $lng->txt("forgot_username"));
1156  $rtpl->setVariable("CMD_FORGOT_PASSWORD",
1157  $this->ctrl->getLinkTargetByClass("ilpasswordassistancegui", ""));
1158  $rtpl->setVariable("CMD_FORGOT_USERNAME",
1159  $this->ctrl->getLinkTargetByClass("ilpasswordassistancegui", "showUsernameAssistanceForm"));
1160  $rtpl->setVariable("LANG_ID", $lng->getLangKey());
1161  $rtpl->parseCurrentBlock();
1162  }
1163 
1164  if ($ilSetting->get("pub_section") &&
1165  $ilAccess->checkAccessOfUser(ANONYMOUS_USER_ID, "read", "", ROOT_FOLDER_ID))
1166  {
1167  $rtpl->setCurrentBlock("homelink");
1168  $rtpl->setVariable("CLIENT_ID","?client_id=".$_COOKIE["ilClientId"]."&lang=".$lng->getLangKey());
1169  $rtpl->setVariable("TXT_HOME",$lng->txt("home"));
1170  $rtpl->parseCurrentBlock();
1171  }
1172 
1173  if ($ilIliasIniFile->readVariable("clients","list"))
1174  {
1175  $rtpl->setCurrentBlock("client_list");
1176  $rtpl->setVariable("TXT_CLIENT_LIST", $lng->txt("to_client_list"));
1177  $rtpl->setVariable("CMD_CLIENT_LIST",$this->ctrl->getLinkTarget($this, "showClientList"));
1178  $rtpl->parseCurrentBlock();
1179  }
1180 
1181  return $this->substituteLoginPageElements(
1182  $GLOBALS['tpl'],
1183  $page_editor_html,
1184  $rtpl->get(),
1185  '[list-registration-link]',
1186  'REG_PWD_CLIENT_LINKS'
1187  );
1188  }
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
substituteLoginPageElements($tpl, $page_editor_html, $element_html, $placeholder, $fallback_tplvar)
Substitute login page elements.
special template class to simplify handling of ITX/PEAR
global $ilSetting
Definition: privfeed.php:17
$_COOKIE['ilClientId']
Definition: BPMN2Parser.php:15
$ilIliasIniFile
+ 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 1001 of file class.ilStartUpGUI.php.

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

Referenced by showLogin(), and showLoginPage().

1002  {
1003  global $ilSetting, $lng;
1004 
1005  // Refactoring with ilFormPropertyGUI
1006  // [...]
1007 
1008  // shibboleth login link
1009  if ($ilSetting->get("shib_active")) {
1010  $tpl = new ilTemplate('tpl.login_form_shibboleth.html', true, true, 'Services/Init');
1011 
1012  $tpl->setVariable('SHIB_FORMACTION', './shib_login.php'); // Bugfix http://ilias.de/mantis/view.php?id=10662 {$tpl->setVariable('SHIB_FORMACTION', $this->ctrl->getFormAction($this));}
1013 
1014  if ($ilSetting->get("shib_hos_type") == 'external_wayf') {
1015  $tpl->setCurrentBlock("shibboleth_login");
1016  $tpl->setVariable("TXT_SHIB_LOGIN", $lng->txt("login_to_ilias_via_shibboleth"));
1017  $tpl->setVariable("IL_TARGET", $_GET["target"]);
1018  $tpl->setVariable("TXT_SHIB_FEDERATION_NAME", $ilSetting->get("shib_federation_name"));
1019  $tpl->setVariable("TXT_SHIB_LOGIN_BUTTON", $ilSetting->get("shib_login_button"));
1020  $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>.');
1021  $tpl->setVariable("TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS", $ilSetting->get("shib_login_instructions"));
1022  $tpl->parseCurrentBlock();
1023  } elseif ($ilSetting->get("shib_hos_type") == 'embedded_wayf') {
1024  $tpl->setCurrentBlock("shibboleth_custom_login");
1025  $customInstructions = stripslashes($ilSetting->get("shib_login_instructions"));
1026  $tpl->setVariable("TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS", $customInstructions);
1027  $tpl->parseCurrentBlock();
1028  } else {
1029  $tpl->setCurrentBlock("shibboleth_wayf_login");
1030  $tpl->setVariable("TXT_SHIB_LOGIN", $lng->txt("login_to_ilias_via_shibboleth"));
1031  $tpl->setVariable("TXT_SHIB_FEDERATION_NAME", $ilSetting->get("shib_federation_name"));
1032  $tpl->setVariable("TXT_SELECT_HOME_ORGANIZATION", sprintf($lng->txt("shib_select_home_organization"), $ilSetting->get("shib_federation_name")));
1033  $tpl->setVariable("TXT_CONTINUE", $lng->txt("btn_next"));
1034  $tpl->setVariable("TXT_SHIB_HOME_ORGANIZATION", $lng->txt("shib_home_organization"));
1035  $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>.');
1036  $tpl->setVariable("TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS", $ilSetting->get("shib_login_instructions"));
1037 
1038  require_once "./Services/AuthShibboleth/classes/class.ilShibbolethWAYF.php";
1039  $WAYF = new ShibWAYF();
1040 
1041  $tpl->setVariable("TXT_SHIB_INVALID_SELECTION", $WAYF->showNotice());
1042  $tpl->setVariable("SHIB_IDP_LIST", $WAYF->generateSelection());
1043  $tpl->setVariable("ILW_TARGET", $_GET["target"]);
1044  $tpl->parseCurrentBlock();
1045  }
1046 
1047  return $this->substituteLoginPageElements($GLOBALS['tpl'], $page_editor_html, $tpl->get(), '[list-shibboleth-login-form]', 'SHIB_LOGIN_FORM');
1048  }
1049 
1050  return $page_editor_html;
1051  }
$_GET["client_id"]
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
Class ShibbolethWAYF.
global $tpl
Definition: ilias.php:8
substituteLoginPageElements($tpl, $page_editor_html, $element_html, $placeholder, $fallback_tplvar)
Substitute login page elements.
special template class to simplify handling of ITX/PEAR
global $ilSetting
Definition: privfeed.php:17
+ 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 1669 of file class.ilStartUpGUI.php.

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

1670  {
1671  global $ilAuth, $tpl, $lng;
1672 
1673  $valid = $ilAuth->getValidationData();
1674 
1675  self::initStartUpTemplate("tpl.user_mapping_selection.html");
1676  $email_user = ilObjUser::_getLocalAccountsForEmail($valid["email"]);
1677 
1678 
1679  if ($ilAuth->getSubStatus() == AUTH_WRONG_LOGIN)
1680  {
1681  ilUtil::sendFailure($lng->txt("err_wrong_login"));
1682  }
1683 
1684  include_once('./Services/User/classes/class.ilObjUser.php');
1685  if (count($email_user) == 1)
1686  {
1687  //$user = new ilObjUser(key($email_user));
1688  $tpl->setCurrentBlock("one_user");
1689  $tpl->setVariable("TXT_USERNAME", $lng->txt("username"));
1690  $tpl->setVariable("VAL_USERNAME", current($email_user));
1691  $tpl->setVariable("USER_ID", key($email_user));
1692  $tpl->parseCurrentBlock();
1693  }
1694  else
1695  {
1696  foreach($email_user as $key => $login)
1697  {
1698  $tpl->setCurrentBlock("user");
1699  $tpl->setVariable("USR_ID", $key);
1700  $tpl->setVariable("VAL_USER", $login);
1701  $tpl->parseCurrentBlock();
1702  }
1703  $tpl->setCurrentBlock("multpiple_user");
1704  $tpl->parseCurrentBlock();
1705  }
1706 
1707  $tpl->setCurrentBlock("content");
1708  $this->ctrl->setParameter($this, "ext_uid", urlencode($_GET["ext_uid"]));
1709  $this->ctrl->setParameter($this, "soap_pw", urlencode($_GET["soap_pw"]));
1710  $this->ctrl->setParameter($this, "auth_stat", $_GET["auth_stat"]);
1711  $tpl->setVariable("FORMACTION",
1712  $this->ctrl->getFormAction($this));
1713  $tpl->setVariable("TXT_ILIAS_LOGIN", $lng->txt("login_to_ilias"));
1714  if (count($email_user) == 1)
1715  {
1716  $tpl->setVariable("TXT_EXPLANATION", $lng->txt("ums_explanation"));
1717  $tpl->setVariable("TXT_EXPLANATION_2", $lng->txt("ums_explanation_2"));
1718  }
1719  else
1720  {
1721  $tpl->setVariable("TXT_EXPLANATION", $lng->txt("ums_explanation_3"));
1722  $tpl->setVariable("TXT_EXPLANATION_2", $lng->txt("ums_explanation_4"));
1723  }
1724  $tpl->setVariable("TXT_CREATE_USER", $lng->txt("ums_create_new_account"));
1725  $tpl->setVariable("TXT_PASSWORD", $lng->txt("password"));
1726  $tpl->setVariable("PASSWORD", ilUtil::prepareFormOutput($_POST["password"]));
1727  $tpl->setVariable("TXT_SUBMIT", $lng->txt("login"));
1728 
1729  $tpl->show();
1730  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
$_GET["client_id"]
$valid
global $tpl
Definition: ilias.php:8
static _getLocalAccountsForEmail($a_email)
check whether external account and authentication method matches with a user
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
+ 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 1063 of file class.ilStartUpGUI.php.

References $tpl.

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

1064  {
1065  if(!strlen($page_editor_html))
1066  {
1067  $tpl->setVariable($fallback_tplvar,$element_html);
1068  return $page_editor_html;
1069  }
1070  // Try to replace placeholders
1071  if(!stristr($page_editor_html, $placeholder))
1072  {
1073  $tpl->setVariable($fallback_tplvar,$element_html);
1074  return $page_editor_html;
1075  }
1076  return str_replace($placeholder, $element_html, $page_editor_html);
1077  }
global $tpl
Definition: ilias.php:8
+ Here is the caller graph for this function:

Field Documentation

◆ $ctrl

ilStartUpGUI::$ctrl
protected

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

◆ $lng

◆ $logger

ilStartUpGUI::$logger
protected

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

Referenced by getLogger().

◆ ACCOUNT_MIGRATION_MIGRATE

const ilStartUpGUI::ACCOUNT_MIGRATION_MIGRATE = 1

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

◆ ACCOUNT_MIGRATION_NEW

const ilStartUpGUI::ACCOUNT_MIGRATION_NEW = 2

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


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