ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables Modules Pages
ilSecuritySettings Class Reference

Singleton class that stores all security settings. More...

+ Collaboration diagram for ilSecuritySettings:

Public Member Functions

 getSecuritySettingsRefId ()
 
 setPasswordCharsAndNumbersEnabled ($a_chars_and_numbers_enabled)
 set if the passwords have to contain characters and numbers More...
 
 isPasswordCharsAndNumbersEnabled ()
 get boolean if the passwords have to contain characters and numbers More...
 
 setPasswordSpecialCharsEnabled ($a_password_special_chars_enabled)
 set if the passwords have to contain special characters More...
 
 isPasswordSpecialCharsEnabled ()
 get boolean if the passwords have to contain special characters More...
 
 setPasswordMinLength ($a_password_min_length)
 set the minimum length for passwords More...
 
 getPasswordMinLength ()
 get the minimum length for passwords More...
 
 setPasswordMaxLength ($a_password_max_length)
 set the maximum length for passwords More...
 
 getPasswordMaxLength ()
 get the maximum length for passwords More...
 
 setPasswordMaxAge ($a_password_max_age)
 set the maximum password age More...
 
 getPasswordMaxAge ()
 get the maximum password age More...
 
 setLoginMaxAttempts ($a_login_max_attempts)
 set the maximum count of login attempts More...
 
 getLoginMaxAttempts ()
 get the maximum count of login attempts More...
 
 setAutomaticHTTPSEnabled ($varname)
 write access to enable automatic https detection More...
 
 setAutomaticHTTPSHeaderName ($varname)
 set header name for automatic https detection More...
 
 setAutomaticHTTPSHeaderValue ($varname)
 set header value for automatic https detection More...
 
 getAutomaticHTTPSHeaderName ()
 read access to header name for automatic https detection More...
 
 getAutomaticHTTPSHeaderValue ()
 read access to header value for automatic https detection More...
 
 isAutomaticHTTPSEnabled ()
 read access to switch if automatic https detection is enabled More...
 
 setHTTPSEnabled ($value)
 Enable https for certain scripts. More...
 
 isHTTPSEnabled ()
 read access to https enabled property More...
 
 setPasswordChangeOnFirstLoginEnabled ($a_password_change_on_first_login_enabled)
 set if the passwords have to be changed by users on first login More...
 
 isPasswordChangeOnFirstLoginEnabled ()
 get boolean if the passwords have to be changed by users on first login More...
 
 isAdminRoleProtected ()
 Check if admin role is protected. More...
 
 protectedAdminRole ($a_stat)
 Set admin role protection status. More...
 
 checkAdminRoleAccessible ($a_usr_id)
 Check if the administrator role is accessible for a specific user. More...
 
 save ()
 Save settings. More...
 
 validate (ilPropertyFormGUI $a_form=null)
 validate settings More...
 
 isPreventionOfSimultaneousLoginsEnabled ()
 Prevention of simultaneous logins with the same account. More...
 
 setPreventionOfSimultaneousLogins ($value)
 Enable/Disable prevention of simultaneous logins with the same account. More...
 
 setPasswordNumberOfUppercaseChars ($password_ucase_chars_num)
 Set number of uppercase characters required. More...
 
 getPasswordNumberOfUppercaseChars ()
 Returns number of uppercase characters required. More...
 
 setPasswordNumberOfLowercaseChars ($password_lcase_chars_num)
 Set number of lowercase characters required. More...
 
 getPasswordNumberOfLowercaseChars ()
 Returns number of lowercase characters required. More...
 
 setPasswordMustNotContainLoginnameStatus ($status)
 Set whether the password must not contain the loginname or not. More...
 
 getPasswordMustNotContainLoginnameStatus ()
 Return whether the password must not contain the loginname or not. More...
 

Static Public Member Functions

static _getInstance ()
 Get instance of ilSecuritySettings. More...
 

Data Fields

const SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MIN_LENGTH = 4
 
const SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MAX_LENGTH = 5
 
const SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MAX_AGE = 6
 
const SECURITY_SETTINGS_ERR_CODE_INVALID_LOGIN_MAX_ATTEMPTS = 7
 
const SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN1 = 11
 
const SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN2 = 8
 
const SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN3 = 9
 
const SECURITY_SETTINGS_ERR_CODE_PASSWORD_MAX_LENGTH_LESS_MIN_LENGTH = 10
 
const DEFAULT_PASSWORD_CHARS_AND_NUMBERS_ENABLED = true
 
const DEFAULT_PASSWORD_SPECIAL_CHARS_ENABLED = false
 
const DEFAULT_PASSWORD_MIN_LENGTH = 8
 
const DEFAULT_PASSWORD_MAX_LENGTH = 0
 
const DEFAULT_PASSWORD_MAX_AGE = 90
 
const DEFAULT_LOGIN_MAX_ATTEMPTS = 5
 
const DEFAULT_PASSWORD_CHANGE_ON_FIRST_LOGIN_ENABLED = false
 
const DEFAULT_PREVENT_SIMULTANEOUS_LOGINS = false
 

Static Public Attributes

static $SECURITY_SETTINGS_ERR_CODE_AUTO_HTTPS = 1
 
static $SECURITY_SETTINGS_ERR_CODE_HTTP_NOT_AVAILABLE = 2
 
static $SECURITY_SETTINGS_ERR_CODE_HTTPS_NOT_AVAILABLE = 3
 

Private Member Functions

 __construct ()
 Private constructor: use _getInstance() More...
 
 read ()
 read settings More...
 

Private Attributes

 $db
 
 $settings
 
 $https_header_enable
 
 $https_header_name
 
 $https_header_value
 
 $https_enable
 
 $password_chars_and_numbers_enabled = self::DEFAULT_PASSWORD_CHARS_AND_NUMBERS_ENABLED
 
 $password_special_chars_enabled = self::DEFAULT_PASSWORD_SPECIAL_CHARS_ENABLED
 
 $password_min_length = self::DEFAULT_PASSWORD_MIN_LENGTH
 
 $password_max_length = self::DEFAULT_PASSWORD_MAX_LENGTH
 
 $password_max_age = self::DEFAULT_PASSWORD_MAX_AGE
 
 $password_ucase_chars_num = 0
 
 $password_lcase_chars_num = 0
 
 $login_max_attempts = self::DEFAULT_LOGIN_MAX_ATTEMPTS
 
 $password_must_not_contain_loginname = false
 
 $password_change_on_first_login_enabled = self::DEFAULT_PASSWORD_CHANGE_ON_FIRST_LOGIN_ENABLED
 
 $prevent_simultaneous_logins = self::DEFAULT_PREVENT_SIMULTANEOUS_LOGINS
 
 $protect_admin_role = false
 

Static Private Attributes

static $instance = null
 

Detailed Description

Singleton class that stores all security settings.

Author
Roland Küstermann rolan.nosp@m.d@ku.nosp@m.ester.nosp@m.mann.nosp@m..com
Version
$Id$

/

Definition at line 34 of file class.ilSecuritySettings.php.

Constructor & Destructor Documentation

◆ __construct()

ilSecuritySettings::__construct ( )
private

Private constructor: use _getInstance()

private

Parameters

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

References $ilSetting, and read().

91  {
92 
93  global $ilSetting,$ilDB;
94 
95  $this->db = $ilDB;
96  $this->settings = $ilSetting;
97 
98  $this->read();
99  }
global $ilSetting
Definition: privfeed.php:40
+ Here is the call graph for this function:

Member Function Documentation

◆ _getInstance()

◆ checkAdminRoleAccessible()

ilSecuritySettings::checkAdminRoleAccessible (   $a_usr_id)

Check if the administrator role is accessible for a specific user.

Parameters
int$a_usr_id

Definition at line 377 of file class.ilSecuritySettings.php.

References isAdminRoleProtected().

378  {
379  global $rbacreview;
380 
381  if(!$this->isAdminRoleProtected())
382  {
383  return true;
384  }
385  if($rbacreview->isAssigned($a_usr_id,SYSTEM_ROLE_ID))
386  {
387  return true;
388  }
389  return false;
390  }
isAdminRoleProtected()
Check if admin role is protected.
+ Here is the call graph for this function:

◆ getAutomaticHTTPSHeaderName()

ilSecuritySettings::getAutomaticHTTPSHeaderName ( )

read access to header name for automatic https detection

Returns
string header name

Definition at line 286 of file class.ilSecuritySettings.php.

References $https_header_name.

Referenced by save(), and validate().

287  {
289  }
+ Here is the caller graph for this function:

◆ getAutomaticHTTPSHeaderValue()

ilSecuritySettings::getAutomaticHTTPSHeaderValue ( )

read access to header value for automatic https detection

Returns
string header value

Definition at line 296 of file class.ilSecuritySettings.php.

References $https_header_value.

Referenced by save(), and validate().

297  {
299  }
+ Here is the caller graph for this function:

◆ getLoginMaxAttempts()

ilSecuritySettings::getLoginMaxAttempts ( )

get the maximum count of login attempts

Returns
integer password max login attempts

Definition at line 245 of file class.ilSecuritySettings.php.

References $login_max_attempts.

Referenced by save(), and validate().

246  {
248  }
+ Here is the caller graph for this function:

◆ getPasswordMaxAge()

ilSecuritySettings::getPasswordMaxAge ( )

get the maximum password age

Returns
integer password max age

Definition at line 225 of file class.ilSecuritySettings.php.

References $password_max_age.

Referenced by save(), and validate().

226  {
228  }
+ Here is the caller graph for this function:

◆ getPasswordMaxLength()

ilSecuritySettings::getPasswordMaxLength ( )

get the maximum length for passwords

Returns
integer password max length

Definition at line 205 of file class.ilSecuritySettings.php.

References $password_max_length.

Referenced by save(), and validate().

206  {
208  }
+ Here is the caller graph for this function:

◆ getPasswordMinLength()

ilSecuritySettings::getPasswordMinLength ( )

get the minimum length for passwords

Returns
integer password min length

Definition at line 185 of file class.ilSecuritySettings.php.

References $password_min_length.

Referenced by save(), and validate().

186  {
188  }
+ Here is the caller graph for this function:

◆ getPasswordMustNotContainLoginnameStatus()

ilSecuritySettings::getPasswordMustNotContainLoginnameStatus ( )

Return whether the password must not contain the loginname or not.

Parameters
boolean

Definition at line 715 of file class.ilSecuritySettings.php.

References $password_must_not_contain_loginname.

Referenced by save().

+ Here is the caller graph for this function:

◆ getPasswordNumberOfLowercaseChars()

ilSecuritySettings::getPasswordNumberOfLowercaseChars ( )

Returns number of lowercase characters required.

Returns
integer

Definition at line 697 of file class.ilSecuritySettings.php.

References $password_lcase_chars_num.

Referenced by save(), and validate().

+ Here is the caller graph for this function:

◆ getPasswordNumberOfUppercaseChars()

ilSecuritySettings::getPasswordNumberOfUppercaseChars ( )

Returns number of uppercase characters required.

Returns
integer

Definition at line 679 of file class.ilSecuritySettings.php.

References $password_ucase_chars_num.

Referenced by save(), and validate().

+ Here is the caller graph for this function:

◆ getSecuritySettingsRefId()

ilSecuritySettings::getSecuritySettingsRefId ( )

Definition at line 117 of file class.ilSecuritySettings.php.

References $ref_id.

118  {
119  return $this->ref_id;
120  }
$ref_id
Definition: sahs_server.php:39

◆ isAdminRoleProtected()

ilSecuritySettings::isAdminRoleProtected ( )

Check if admin role is protected.

Returns
type

Definition at line 359 of file class.ilSecuritySettings.php.

References $protect_admin_role.

Referenced by checkAdminRoleAccessible(), and save().

360  {
361  return (bool) $this->protect_admin_role;
362  }
+ Here is the caller graph for this function:

◆ isAutomaticHTTPSEnabled()

ilSecuritySettings::isAutomaticHTTPSEnabled ( )

read access to switch if automatic https detection is enabled

Returns
boolean true, if detection is enabled, false otherwise

Definition at line 306 of file class.ilSecuritySettings.php.

References $https_header_enable.

Referenced by save(), and validate().

307  {
309  }
+ Here is the caller graph for this function:

◆ isHTTPSEnabled()

ilSecuritySettings::isHTTPSEnabled ( )

read access to https enabled property

Returns
boolean true, if enabled, false otherwise

Definition at line 326 of file class.ilSecuritySettings.php.

References $https_enable.

Referenced by save(), and validate().

327  {
328  return $this->https_enable;
329  }
+ Here is the caller graph for this function:

◆ isPasswordChangeOnFirstLoginEnabled()

ilSecuritySettings::isPasswordChangeOnFirstLoginEnabled ( )

get boolean if the passwords have to be changed by users on first login

Returns
boolean password change on first login enabled

Definition at line 350 of file class.ilSecuritySettings.php.

References $password_change_on_first_login_enabled.

Referenced by save().

+ Here is the caller graph for this function:

◆ isPasswordCharsAndNumbersEnabled()

ilSecuritySettings::isPasswordCharsAndNumbersEnabled ( )

get boolean if the passwords have to contain characters and numbers

Returns
boolean characters and numbers enabled

Definition at line 141 of file class.ilSecuritySettings.php.

References $password_chars_and_numbers_enabled.

Referenced by save(), and validate().

+ Here is the caller graph for this function:

◆ isPasswordSpecialCharsEnabled()

ilSecuritySettings::isPasswordSpecialCharsEnabled ( )

get boolean if the passwords have to contain special characters

Returns
boolean password special chars enabled

Definition at line 165 of file class.ilSecuritySettings.php.

References $password_special_chars_enabled.

Referenced by save(), and validate().

+ Here is the caller graph for this function:

◆ isPreventionOfSimultaneousLoginsEnabled()

ilSecuritySettings::isPreventionOfSimultaneousLoginsEnabled ( )

Prevention of simultaneous logins with the same account.

Returns
boolean true, if prevention of simultaneous logins with the same account is enabled, false otherwise

Definition at line 651 of file class.ilSecuritySettings.php.

References $prevent_simultaneous_logins.

Referenced by save().

652  {
654  }
+ Here is the caller graph for this function:

◆ protectedAdminRole()

ilSecuritySettings::protectedAdminRole (   $a_stat)

Set admin role protection status.

Parameters
type$a_stat

Definition at line 368 of file class.ilSecuritySettings.php.

369  {
370  $this->protect_admin_role = $a_stat;
371  }

◆ read()

ilSecuritySettings::read ( )
private

read settings

private

Parameters

Definition at line 425 of file class.ilSecuritySettings.php.

References $query, $res, $row, and DB_FETCHMODE_ASSOC.

Referenced by __construct().

426  {
427  global $ilDB;
428 
429  $query = "SELECT object_reference.ref_id FROM object_reference,tree,object_data ".
430  "WHERE tree.parent = ".$ilDB->quote(SYSTEM_FOLDER_ID,'integer')." ".
431  "AND object_data.type = 'ps' ".
432  "AND object_reference.ref_id = tree.child ".
433  "AND object_reference.obj_id = object_data.obj_id";
434  $res = $this->db->query($query);
435  $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
436  $this->ref_id = $row["ref_id"];
437 
438  $this->https_header_enable = (bool) $this->settings->get('ps_auto_https_enabled',false);
439  $this->https_header_name = (string) $this->settings->get('ps_auto_https_headername',"ILIAS_HTTPS_ENABLED");
440  $this->https_header_value = (string) $this->settings->get('ps_auto_https_headervalue',"1");
441  $this->https_enable = (boolean) $this->settings->get('https', false);
442 
443  $this->password_chars_and_numbers_enabled = (bool) $this->settings->get('ps_password_chars_and_numbers_enabled', self::DEFAULT_PASSWORD_CHARS_AND_NUMBERS_ENABLED);
444  $this->password_special_chars_enabled = (bool) $this->settings->get('ps_password_special_chars_enabled', self::DEFAULT_PASSWORD_SPECIAL_CHARS_ENABLED);
445  $this->password_min_length = (int) $this->settings->get('ps_password_min_length', self::DEFAULT_PASSWORD_MIN_LENGTH);
446  $this->password_max_length = (int) $this->settings->get('ps_password_max_length', self::DEFAULT_PASSWORD_MAX_LENGTH);
447  $this->password_max_age = (int) $this->settings->get('ps_password_max_age', self::DEFAULT_PASSWORD_MAX_AGE);
448  $this->login_max_attempts = (int) $this->settings->get('ps_login_max_attempts', self::DEFAULT_LOGIN_MAX_ATTEMPTS);
449  $this->password_ucase_chars_num = (int) $this->settings->get('ps_password_uppercase_chars_num', 0);
450  $this->password_lcase_chars_num = (int) $this->settings->get('ps_password_lowercase_chars_num', 0);
451  $this->password_must_not_contain_loginname = $this->settings->get('ps_password_must_not_contain_loginame', 0) == '1' ? true : false;
452 
453  $this->password_change_on_first_login_enabled = (bool) $this->settings->get('ps_password_change_on_first_login_enabled', self::DEFAULT_PASSWORD_CHANGE_ON_FIRST_LOGIN_ENABLED);
454  $this->prevent_simultaneous_logins = (bool) $this->settings->get('ps_prevent_simultaneous_logins', self::DEFAULT_PREVENT_SIMULTANEOUS_LOGINS);
455 
456  $this->protect_admin_role = (bool) $this->settings->get('ps_protect_admin',$this->protect_admin_role);
457  }
const DB_FETCHMODE_ASSOC
Definition: class.ilDB.php:10
+ Here is the caller graph for this function:

◆ save()

ilSecuritySettings::save ( )

Save settings.

Definition at line 397 of file class.ilSecuritySettings.php.

References getAutomaticHTTPSHeaderName(), getAutomaticHTTPSHeaderValue(), getLoginMaxAttempts(), getPasswordMaxAge(), getPasswordMaxLength(), getPasswordMinLength(), getPasswordMustNotContainLoginnameStatus(), getPasswordNumberOfLowercaseChars(), getPasswordNumberOfUppercaseChars(), isAdminRoleProtected(), isAutomaticHTTPSEnabled(), isHTTPSEnabled(), isPasswordChangeOnFirstLoginEnabled(), isPasswordCharsAndNumbersEnabled(), isPasswordSpecialCharsEnabled(), and isPreventionOfSimultaneousLoginsEnabled().

398  {
399  $this->settings->set('ps_auto_https_enabled',(bool) $this->isAutomaticHTTPSEnabled());
400  $this->settings->set('ps_auto_https_headername',(string) $this->getAutomaticHTTPSHeaderName());
401  $this->settings->set('ps_auto_https_headervalue',(string) $this->getAutomaticHTTPSHeaderValue());
402  $this->settings->set('https',(string) $this->isHTTPSEnabled());
403 
404  $this->settings->set('ps_password_chars_and_numbers_enabled',(bool) $this->isPasswordCharsAndNumbersEnabled());
405  $this->settings->set('ps_password_special_chars_enabled',(bool) $this->isPasswordSpecialCharsEnabled());
406  $this->settings->set('ps_password_min_length',(int) $this->getPasswordMinLength());
407  $this->settings->set('ps_password_max_length',(int) $this->getPasswordMaxLength());
408  $this->settings->set('ps_password_max_age',(int) $this->getPasswordMaxAge());
409  $this->settings->set('ps_login_max_attempts',(int) $this->getLoginMaxAttempts());
410  $this->settings->set('ps_password_uppercase_chars_num', (int) $this->getPasswordNumberOfUppercaseChars());
411  $this->settings->set('ps_password_lowercase_chars_num', (int) $this->getPasswordNumberOfLowercaseChars());
412  $this->settings->set('ps_password_must_not_contain_loginame', (int) $this->getPasswordMustNotContainLoginnameStatus());
413 
414  $this->settings->set('ps_password_change_on_first_login_enabled',(bool) $this->isPasswordChangeOnFirstLoginEnabled());
415  $this->settings->set('ps_prevent_simultaneous_logins', (int)$this->isPreventionOfSimultaneousLoginsEnabled());
416  $this->settings->set('ps_protect_admin', (int) $this->isAdminRoleProtected());
417  }
isHTTPSEnabled()
read access to https enabled property
isPasswordCharsAndNumbersEnabled()
get boolean if the passwords have to contain characters and numbers
isAutomaticHTTPSEnabled()
read access to switch if automatic https detection is enabled
getPasswordMaxLength()
get the maximum length for passwords
getAutomaticHTTPSHeaderValue()
read access to header value for automatic https detection
isPasswordChangeOnFirstLoginEnabled()
get boolean if the passwords have to be changed by users on first login
getPasswordNumberOfLowercaseChars()
Returns number of lowercase characters required.
isAdminRoleProtected()
Check if admin role is protected.
getPasswordNumberOfUppercaseChars()
Returns number of uppercase characters required.
isPasswordSpecialCharsEnabled()
get boolean if the passwords have to contain special characters
getPasswordMinLength()
get the minimum length for passwords
getPasswordMaxAge()
get the maximum password age
isPreventionOfSimultaneousLoginsEnabled()
Prevention of simultaneous logins with the same account.
getAutomaticHTTPSHeaderName()
read access to header name for automatic https detection
getLoginMaxAttempts()
get the maximum count of login attempts
getPasswordMustNotContainLoginnameStatus()
Return whether the password must not contain the loginname or not.
+ Here is the call graph for this function:

◆ setAutomaticHTTPSEnabled()

ilSecuritySettings::setAutomaticHTTPSEnabled (   $varname)

write access to enable automatic https detection

Parameters
boolean$varname

Definition at line 256 of file class.ilSecuritySettings.php.

257  {
258  $this->https_header_enable = $varname;
259  }

◆ setAutomaticHTTPSHeaderName()

ilSecuritySettings::setAutomaticHTTPSHeaderName (   $varname)

set header name for automatic https detection

Parameters
string$varname

Definition at line 266 of file class.ilSecuritySettings.php.

267  {
268  $this->https_header_name = $varname;
269  }

◆ setAutomaticHTTPSHeaderValue()

ilSecuritySettings::setAutomaticHTTPSHeaderValue (   $varname)

set header value for automatic https detection

Parameters
string$varname

Definition at line 276 of file class.ilSecuritySettings.php.

277  {
278  $this->https_header_value = $varname;
279  }

◆ setHTTPSEnabled()

ilSecuritySettings::setHTTPSEnabled (   $value)

Enable https for certain scripts.

Parameters
boolean$value

Definition at line 316 of file class.ilSecuritySettings.php.

317  {
318  $this->https_enable = $value;
319  }

◆ setLoginMaxAttempts()

ilSecuritySettings::setLoginMaxAttempts (   $a_login_max_attempts)

set the maximum count of login attempts

Parameters
integer$a_login_max_attempts

Definition at line 235 of file class.ilSecuritySettings.php.

236  {
237  $this->login_max_attempts = $a_login_max_attempts;
238  }

◆ setPasswordChangeOnFirstLoginEnabled()

ilSecuritySettings::setPasswordChangeOnFirstLoginEnabled (   $a_password_change_on_first_login_enabled)

set if the passwords have to be changed by users on first login

Parameters
boolean$a_password_change_on_first_login_enabled

Definition at line 338 of file class.ilSecuritySettings.php.

339  {
340  $this->password_change_on_first_login_enabled = $a_password_change_on_first_login_enabled;
341  }

◆ setPasswordCharsAndNumbersEnabled()

ilSecuritySettings::setPasswordCharsAndNumbersEnabled (   $a_chars_and_numbers_enabled)

set if the passwords have to contain characters and numbers

Parameters
boolean$a_chars_and_numbers_enabled

Definition at line 129 of file class.ilSecuritySettings.php.

130  {
131  $this->password_chars_and_numbers_enabled = $a_chars_and_numbers_enabled;
132  }

◆ setPasswordMaxAge()

ilSecuritySettings::setPasswordMaxAge (   $a_password_max_age)

set the maximum password age

Parameters
integer$a_password_max_age

Definition at line 215 of file class.ilSecuritySettings.php.

216  {
217  $this->password_max_age = $a_password_max_age;
218  }

◆ setPasswordMaxLength()

ilSecuritySettings::setPasswordMaxLength (   $a_password_max_length)

set the maximum length for passwords

Parameters
integer$a_password_max_length

Definition at line 195 of file class.ilSecuritySettings.php.

196  {
197  $this->password_max_length = $a_password_max_length;
198  }

◆ setPasswordMinLength()

ilSecuritySettings::setPasswordMinLength (   $a_password_min_length)

set the minimum length for passwords

Parameters
integer$a_password_min_length

Definition at line 175 of file class.ilSecuritySettings.php.

176  {
177  $this->password_min_length = $a_password_min_length;
178  }

◆ setPasswordMustNotContainLoginnameStatus()

ilSecuritySettings::setPasswordMustNotContainLoginnameStatus (   $status)

Set whether the password must not contain the loginname or not.

Parameters
boolean

Definition at line 706 of file class.ilSecuritySettings.php.

707  {
708  $this->password_must_not_contain_loginname = $status;
709  }

◆ setPasswordNumberOfLowercaseChars()

ilSecuritySettings::setPasswordNumberOfLowercaseChars (   $password_lcase_chars_num)

Set number of lowercase characters required.

Parameters
integer

Definition at line 688 of file class.ilSecuritySettings.php.

References $password_lcase_chars_num.

689  {
690  $this->password_lcase_chars_num = $password_lcase_chars_num;
691  }

◆ setPasswordNumberOfUppercaseChars()

ilSecuritySettings::setPasswordNumberOfUppercaseChars (   $password_ucase_chars_num)

Set number of uppercase characters required.

Parameters
integer

Definition at line 670 of file class.ilSecuritySettings.php.

References $password_ucase_chars_num.

671  {
672  $this->password_ucase_chars_num = $password_ucase_chars_num;
673  }

◆ setPasswordSpecialCharsEnabled()

ilSecuritySettings::setPasswordSpecialCharsEnabled (   $a_password_special_chars_enabled)

set if the passwords have to contain special characters

Parameters
boolean$a_password_special_chars_enabled

Definition at line 153 of file class.ilSecuritySettings.php.

154  {
155  $this->password_special_chars_enabled = $a_password_special_chars_enabled;
156  }

◆ setPreventionOfSimultaneousLogins()

ilSecuritySettings::setPreventionOfSimultaneousLogins (   $value)

Enable/Disable prevention of simultaneous logins with the same account.

Parameters
boolean$value

Definition at line 661 of file class.ilSecuritySettings.php.

662  {
663  $this->prevent_simultaneous_logins = (bool)$value;
664  }

◆ validate()

ilSecuritySettings::validate ( ilPropertyFormGUI  $a_form = null)

validate settings

Returns
0, if everything is ok, an error code otherwise

Definition at line 464 of file class.ilSecuritySettings.php.

References $password_min_length, $SECURITY_SETTINGS_ERR_CODE_HTTPS_NOT_AVAILABLE, ilHTTPS\_checkHTTPS(), getAutomaticHTTPSHeaderName(), getAutomaticHTTPSHeaderValue(), ilObjPrivacySecurityGUI\getErrorMessage(), getLoginMaxAttempts(), getPasswordMaxAge(), getPasswordMaxLength(), getPasswordMinLength(), getPasswordNumberOfLowercaseChars(), getPasswordNumberOfUppercaseChars(), isAutomaticHTTPSEnabled(), isHTTPSEnabled(), isPasswordCharsAndNumbersEnabled(), and isPasswordSpecialCharsEnabled().

465  {
466  $code = null;
467 
468  if ($a_form)
469  {
470  include_once "Services/PrivacySecurity/classes/class.ilObjPrivacySecurityGUI.php";
471  }
472 
473  // handled in form itself
474  if ($this->isAutomaticHTTPSEnabled() &&
475  (strlen($this->getAutomaticHTTPSHeaderName()) == 0 ||
476  strlen($this->getAutomaticHTTPSHeaderValue()) == 0)
477  )
478  {
479  return ilSecuritySettings::SECURITY_SETTINGS_ERR_CODE_AUTO_HTTPS;
480  }
481 
482  include_once './Services/Http/classes/class.ilHTTPS.php';
483 
484  if ($this->isHTTPSEnabled())
485  {
486  if(!ilHTTPS::_checkHTTPS())
487  {
489  if(!$a_form)
490  {
491  return $code;
492  }
493  else
494  {
495  $a_form->getItemByPostVar('https_enabled')
496  ->setAlert(ilObjPrivacySecurityGUI::getErrorMessage($code));
497  }
498  }
499  }
500  /*
501  elseif(!ilHTTPS::_checkHTTP())
502  {
503  $code = ilSecuritySettings::$SECURITY_SETTINGS_ERR_CODE_HTTP_NOT_AVAILABLE;
504  if(!$a_form)
505  {
506  return $code;
507  }
508  else
509  {
510  $a_form->getItemByPostVar('https_enabled')
511  ->setAlert(ilObjPrivacySecurityGUI::getErrorMessage($code));
512  }
513  }
514  */
515  if( $this->getPasswordMinLength() < 0 )
516  {
517  $code = self::SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MIN_LENGTH;
518  if(!$a_form)
519  {
520  return $code;
521  }
522  else
523  {
524  $a_form->getItemByPostVar('password_min_length')
525  ->setAlert(ilObjPrivacySecurityGUI::getErrorMessage($code));
526  }
527  }
528 
529  if( $this->getPasswordMaxLength() < 0 )
530  {
531  $code = self::SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MAX_LENGTH;
532  if(!$a_form)
533  {
534  return $code;
535  }
536  else
537  {
538  $a_form->getItemByPostVar('password_max_length')
539  ->setAlert(ilObjPrivacySecurityGUI::getErrorMessage($code));
540  }
541  }
542 
544 
546  {
548  if($this->getPasswordNumberOfUppercaseChars() > 0)
549  {
551  }
552  if($this->getPasswordNumberOfLowercaseChars() > 0)
553  {
555  }
556  $password_min_length_error_code = self::SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN1;
557  }
558 
559  if( $this->isPasswordCharsAndNumbersEnabled() )
560  {
562  $password_min_length_error_code = self::SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN2;
563 
564  if( $this->isPasswordSpecialCharsEnabled() )
565  {
567  $password_min_length_error_code = self::SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN3;
568  }
569  }
570  else if($password_min_length > 1 && $this->isPasswordSpecialCharsEnabled())
571  {
573  $password_min_length_error_code = self::SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN3;
574  }
575 
576  if( $this->getPasswordMinLength() > 0 && $this->getPasswordMinLength() < $password_min_length )
577  {
578  $code = $password_min_length_error_code;
579  if(!$a_form)
580  {
581  return $code;
582  }
583  else
584  {
585  $a_form->getItemByPostVar('password_min_length')
587  }
588  }
589  if( $this->getPasswordMaxLength() > 0 && $this->getPasswordMaxLength() < $this->getPasswordMinLength() )
590  {
591  $code = self::SECURITY_SETTINGS_ERR_CODE_PASSWORD_MAX_LENGTH_LESS_MIN_LENGTH;
592  if(!$a_form)
593  {
594  return $code;
595  }
596  else
597  {
598  $a_form->getItemByPostVar('password_max_length')
599  ->setAlert(ilObjPrivacySecurityGUI::getErrorMessage($code));
600  }
601  }
602 
603  if( $this->getPasswordMaxAge() < 0 )
604  {
605  $code = self::SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MAX_AGE;
606  if(!$a_form)
607  {
608  return $code;
609  }
610  else
611  {
612  $a_form->getItemByPostVar('password_max_age')
613  ->setAlert(ilObjPrivacySecurityGUI::getErrorMessage($code));
614  }
615  }
616 
617  if( $this->getLoginMaxAttempts() < 0 )
618  {
619  $code = self::SECURITY_SETTINGS_ERR_CODE_INVALID_LOGIN_MAX_ATTEMPTS;
620  if(!$a_form)
621  {
622  return $code;
623  }
624  else
625  {
626  $a_form->getItemByPostVar('login_max_attempts')
627  ->setAlert(ilObjPrivacySecurityGUI::getErrorMessage($code));
628  }
629  }
630 
631  /*
632  * todo: have to check for local auth if first login password change is enabled??
633  * than: add errorcode
634  */
635 
636  if(!$a_form)
637  {
638  return 0;
639  }
640  else
641  {
642  return !(bool)$code;
643  }
644  }
getItemByPostVar($a_post_var)
Get Item by POST variable.
static getErrorMessage($code)
return error message for error code
isHTTPSEnabled()
read access to https enabled property
isPasswordCharsAndNumbersEnabled()
get boolean if the passwords have to contain characters and numbers
isAutomaticHTTPSEnabled()
read access to switch if automatic https detection is enabled
getPasswordMaxLength()
get the maximum length for passwords
getAutomaticHTTPSHeaderValue()
read access to header value for automatic https detection
getPasswordNumberOfLowercaseChars()
Returns number of lowercase characters required.
getPasswordNumberOfUppercaseChars()
Returns number of uppercase characters required.
isPasswordSpecialCharsEnabled()
get boolean if the passwords have to contain special characters
getPasswordMinLength()
get the minimum length for passwords
_checkHTTPS()
static method to check if https connections are possible for this server public
getPasswordMaxAge()
get the maximum password age
getAutomaticHTTPSHeaderName()
read access to header name for automatic https detection
getLoginMaxAttempts()
get the maximum count of login attempts
static $SECURITY_SETTINGS_ERR_CODE_HTTPS_NOT_AVAILABLE
+ Here is the call graph for this function:

Field Documentation

◆ $db

ilSecuritySettings::$db
private

Definition at line 50 of file class.ilSecuritySettings.php.

◆ $https_enable

ilSecuritySettings::$https_enable
private

Definition at line 56 of file class.ilSecuritySettings.php.

Referenced by isHTTPSEnabled().

◆ $https_header_enable

ilSecuritySettings::$https_header_enable
private

Definition at line 53 of file class.ilSecuritySettings.php.

Referenced by isAutomaticHTTPSEnabled().

◆ $https_header_name

ilSecuritySettings::$https_header_name
private

Definition at line 54 of file class.ilSecuritySettings.php.

Referenced by getAutomaticHTTPSHeaderName().

◆ $https_header_value

ilSecuritySettings::$https_header_value
private

Definition at line 55 of file class.ilSecuritySettings.php.

Referenced by getAutomaticHTTPSHeaderValue().

◆ $instance

ilSecuritySettings::$instance = null
staticprivate

Definition at line 49 of file class.ilSecuritySettings.php.

◆ $login_max_attempts

ilSecuritySettings::$login_max_attempts = self::DEFAULT_LOGIN_MAX_ATTEMPTS
private

Definition at line 75 of file class.ilSecuritySettings.php.

Referenced by getLoginMaxAttempts().

◆ $password_change_on_first_login_enabled

ilSecuritySettings::$password_change_on_first_login_enabled = self::DEFAULT_PASSWORD_CHANGE_ON_FIRST_LOGIN_ENABLED
private

Definition at line 78 of file class.ilSecuritySettings.php.

Referenced by isPasswordChangeOnFirstLoginEnabled().

◆ $password_chars_and_numbers_enabled

ilSecuritySettings::$password_chars_and_numbers_enabled = self::DEFAULT_PASSWORD_CHARS_AND_NUMBERS_ENABLED
private

Definition at line 68 of file class.ilSecuritySettings.php.

Referenced by isPasswordCharsAndNumbersEnabled().

◆ $password_lcase_chars_num

ilSecuritySettings::$password_lcase_chars_num = 0
private

◆ $password_max_age

ilSecuritySettings::$password_max_age = self::DEFAULT_PASSWORD_MAX_AGE
private

Definition at line 72 of file class.ilSecuritySettings.php.

Referenced by getPasswordMaxAge().

◆ $password_max_length

ilSecuritySettings::$password_max_length = self::DEFAULT_PASSWORD_MAX_LENGTH
private

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

Referenced by getPasswordMaxLength().

◆ $password_min_length

ilSecuritySettings::$password_min_length = self::DEFAULT_PASSWORD_MIN_LENGTH
private

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

Referenced by getPasswordMinLength(), and validate().

◆ $password_must_not_contain_loginname

ilSecuritySettings::$password_must_not_contain_loginname = false
private

◆ $password_special_chars_enabled

ilSecuritySettings::$password_special_chars_enabled = self::DEFAULT_PASSWORD_SPECIAL_CHARS_ENABLED
private

Definition at line 69 of file class.ilSecuritySettings.php.

Referenced by isPasswordSpecialCharsEnabled().

◆ $password_ucase_chars_num

ilSecuritySettings::$password_ucase_chars_num = 0
private

◆ $prevent_simultaneous_logins

ilSecuritySettings::$prevent_simultaneous_logins = self::DEFAULT_PREVENT_SIMULTANEOUS_LOGINS
private

◆ $protect_admin_role

ilSecuritySettings::$protect_admin_role = false
private

Definition at line 81 of file class.ilSecuritySettings.php.

Referenced by isAdminRoleProtected().

◆ $SECURITY_SETTINGS_ERR_CODE_AUTO_HTTPS

ilSecuritySettings::$SECURITY_SETTINGS_ERR_CODE_AUTO_HTTPS = 1
static

◆ $SECURITY_SETTINGS_ERR_CODE_HTTP_NOT_AVAILABLE

ilSecuritySettings::$SECURITY_SETTINGS_ERR_CODE_HTTP_NOT_AVAILABLE = 2
static

◆ $SECURITY_SETTINGS_ERR_CODE_HTTPS_NOT_AVAILABLE

ilSecuritySettings::$SECURITY_SETTINGS_ERR_CODE_HTTPS_NOT_AVAILABLE = 3
static

◆ $settings

ilSecuritySettings::$settings
private

Definition at line 51 of file class.ilSecuritySettings.php.

◆ DEFAULT_LOGIN_MAX_ATTEMPTS

const ilSecuritySettings::DEFAULT_LOGIN_MAX_ATTEMPTS = 5

Definition at line 63 of file class.ilSecuritySettings.php.

◆ DEFAULT_PASSWORD_CHANGE_ON_FIRST_LOGIN_ENABLED

const ilSecuritySettings::DEFAULT_PASSWORD_CHANGE_ON_FIRST_LOGIN_ENABLED = false

Definition at line 65 of file class.ilSecuritySettings.php.

◆ DEFAULT_PASSWORD_CHARS_AND_NUMBERS_ENABLED

const ilSecuritySettings::DEFAULT_PASSWORD_CHARS_AND_NUMBERS_ENABLED = true

Definition at line 58 of file class.ilSecuritySettings.php.

◆ DEFAULT_PASSWORD_MAX_AGE

const ilSecuritySettings::DEFAULT_PASSWORD_MAX_AGE = 90

Definition at line 62 of file class.ilSecuritySettings.php.

◆ DEFAULT_PASSWORD_MAX_LENGTH

const ilSecuritySettings::DEFAULT_PASSWORD_MAX_LENGTH = 0

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

◆ DEFAULT_PASSWORD_MIN_LENGTH

const ilSecuritySettings::DEFAULT_PASSWORD_MIN_LENGTH = 8

Definition at line 60 of file class.ilSecuritySettings.php.

◆ DEFAULT_PASSWORD_SPECIAL_CHARS_ENABLED

const ilSecuritySettings::DEFAULT_PASSWORD_SPECIAL_CHARS_ENABLED = false

Definition at line 59 of file class.ilSecuritySettings.php.

◆ DEFAULT_PREVENT_SIMULTANEOUS_LOGINS

const ilSecuritySettings::DEFAULT_PREVENT_SIMULTANEOUS_LOGINS = false

Definition at line 66 of file class.ilSecuritySettings.php.

◆ SECURITY_SETTINGS_ERR_CODE_INVALID_LOGIN_MAX_ATTEMPTS

const ilSecuritySettings::SECURITY_SETTINGS_ERR_CODE_INVALID_LOGIN_MAX_ATTEMPTS = 7

◆ SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MAX_AGE

const ilSecuritySettings::SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MAX_AGE = 6

◆ SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MAX_LENGTH

const ilSecuritySettings::SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MAX_LENGTH = 5

◆ SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MIN_LENGTH

const ilSecuritySettings::SECURITY_SETTINGS_ERR_CODE_INVALID_PASSWORD_MIN_LENGTH = 4

◆ SECURITY_SETTINGS_ERR_CODE_PASSWORD_MAX_LENGTH_LESS_MIN_LENGTH

const ilSecuritySettings::SECURITY_SETTINGS_ERR_CODE_PASSWORD_MAX_LENGTH_LESS_MIN_LENGTH = 10

◆ SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN1

const ilSecuritySettings::SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN1 = 11

◆ SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN2

const ilSecuritySettings::SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN2 = 8

◆ SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN3

const ilSecuritySettings::SECURITY_SETTINGS_ERR_CODE_PASSWORD_MIN_LENGTH_MIN3 = 9

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