LAMCfgMain
in package
This class manages config.cfg.
Table of Contents
- DATABASE_FILE_SYSTEM = 'files'
- store configuration on local file system
- DATABASE_MYSQL = 'mysql'
- store configuration in MySQL database
- ERROR_REPORTING_ALL = 'all'
- PHP error reporting setting as E_ALL | E_STRICT
- ERROR_REPORTING_DEFAULT = 'default'
- PHP error reporting setting as E_ALL & ~E_NOTICE
- ERROR_REPORTING_SYSTEM = 'system'
- PHP error reporting setting from php.ini
- LICENSE_WARNING_ALL = 'all'
- send license warnings via email + display on screen
- LICENSE_WARNING_EMAIL = 'email'
- send license warnings via email
- LICENSE_WARNING_NONE = 'none'
- no license warning
- LICENSE_WARNING_SCREEN = 'screen'
- display license warnings on screen
- MAIL_ATTRIBUTE_DEFAULT = 'mail'
- MAIL_BACKUP_ATTRIBUTE_DEFAULT = 'passwordselfresetbackupmail'
- SMTP_NONE = 'NONE'
- No encryption for mail sending
- SMTP_SSL = 'SSL'
- SSL encryption for mail sending
- SMTP_TLS = 'TLS'
- TLS encryption for mail sending
- $allowedHosts : mixed
- list of hosts which may access LAM
- $allowedHostsSelfService : mixed
- list of hosts which may access LAM Pro self service
- $checkedRulesCount : mixed
- number of password rules that must match (-1 = all)
- $configDatabaseName : mixed
- database name
- $configDatabasePassword : mixed
- database password
- $configDatabasePort : mixed
- database port
- $configDatabaseServer : mixed
- database server name
- $configDatabaseType : mixed
- database type
- $configDatabaseUser : mixed
- database user
- $default : mixed
- Default profile
- $errorReporting : mixed
- error reporting
- $externalPwdCheckUrl : mixed
- external URL for password checking (e.g. https://domain.com/url/{SHA1})
- $hideLoginErrorDetails : string
- $licenseEmailDateSent : mixed
- license warning email was last sent for this expiration date
- $licenseEmailFrom : mixed
- license warning email from address
- $licenseEmailTo : mixed
- license warning email TO address(es) separated by ";"
- $licenseWarningType : mixed
- type of license warning (email/screen/both/none)
- $logDestination : mixed
- log destination ("SYSLOG":syslog, "/...":file, "NONE":none, "REMOTE":server:port)
- $logLevel : mixed
- log level
- $mailAttribute : string
- $mailBackupAttribute : string
- $mailEncryption : string
- $mailPassword : mixed
- mail server password
- $mailServer : mixed
- mail server (server:port)
- $mailUser : mixed
- mail server user
- $passwordMinClasses : mixed
- minimum character classes (upper, lower, numeric, symbols)
- $passwordMinLength : mixed
- minimum length for passwords
- $passwordMinLower : mixed
- minimum lowercase characters
- $passwordMinNumeric : mixed
- minimum numeric characters
- $passwordMinSymbol : mixed
- minimum symbol characters
- $passwordMinUpper : mixed
- minimum uppercase characters
- $passwordMustNotContain3Chars : mixed
- password may contain more than 2 characters of user/first/last name
- $passwordMustNotContainUser : mixed
- password may contain the user name
- $sessionTimeout : mixed
- Time of inactivity before session times out (minutes)
- $conffile : mixed
- path to config file
- $delSSLCaCert : mixed
- SSL certificate should be deleted on save()
- $license : mixed
- license data
- $moduleSettings : mixed
- database password
- $password : mixed
- Password to change config.cfg
- $persistenceSettings : mixed
- persistence settings are always stored on local file system
- $settings : mixed
- list of data fields to save in config file
- $uploadedSSLCaCert : mixed
- uploaded SSL certificate that is stored to disk on save()
- __construct() : mixed
- Loads preferences from config file
- checkPassword() : bool
- Checks if the given password matches.
- deleteSSLCaCert() : mixed
- Marks a single or all SSL CA certificate files for deletion.
- exportCertificates() : null|string
- Returns the content of the server certificates file
- exportData() : array<string|int, mixed>
- Exports the configuration data.
- getLicenseLines() : string
- Returns the license key as multiple lines.
- getLicenseWarningType() : string
- Returns the license warning type (screen/email/both/none).
- getMailAttribute() : string
- Returns the mail attribute.
- getMailBackupAttribute() : string
- Returns the mail backup attribute.
- getModuleSettings() : array<string|int, mixed>
- Returns a list of module settings.
- getSSLCaCertificates() : array<string|int, mixed>
- Returns a list of all CA certificates.
- getSSLCaCertPath() : string
- Returns the path to the SSL CA certificate file that overrides the system certificates.
- getSSLCaCertTempFileName() : string|null
- Returns the name of a temporary file in tmp that contains the SSL certificate.
- importCertificates() : mixed
- Imports the server certificates.
- importData() : mixed
- Imports configuration data.
- installSampleConfig() : bool
- Tries to copy the config file from sample config.
- isConfigFileExisting() : bool
- Returns if the configuration file is existing.
- isHideLoginErrorDetails() : bool
- Hide error details for failed logins.
- isWritable() : bool
- Returns if the configuration file is writable.
- save() : mixed
- Saves the configuration to the persistence layer.
- saveLocal() : void
- Saves preferences to config file config.cfg
- sendLicenseWarningByEmail() : bool
- Returns if the license warning should be sent via email.
- setLicenseLines() : mixed
- Sets the license key as multiple lines.
- setModuleSettings() : void
- Sets the module settings.
- setPassword() : mixed
- Sets a new config password.
- showLicenseWarningOnScreen() : bool
- Returns if the license warning should be shown on screen.
- uploadSSLCaCert() : mixed
- Uploads a new SSL CA cert.
- wasLicenseWarningSent() : mixed
- Returns if the license warning was already sent.
- getInternalSSLCaCertFileName() : string
- Returns the file name that will be used internally to store the CA file.
- getSSLCaCertificateContent() : string
- Returns the content of the certificate file or uploaded data.
- hashPassword() : string
- Returns the hashed password.
- loadFromDb() : bool
- Loads the settings from the database.
- reload() : void
- Reloads preferences from config file config.cfg
- saveDb() : void
- Saves the config data to the database.
- splitSSLCaCertificateContent() : array<string|int, mixed>
- Splits the certificate content into single PEM data chunks.
Constants
DATABASE_FILE_SYSTEM
store configuration on local file system
public
mixed
DATABASE_FILE_SYSTEM
= 'files'
DATABASE_MYSQL
store configuration in MySQL database
public
mixed
DATABASE_MYSQL
= 'mysql'
ERROR_REPORTING_ALL
PHP error reporting setting as E_ALL | E_STRICT
public
mixed
ERROR_REPORTING_ALL
= 'all'
ERROR_REPORTING_DEFAULT
PHP error reporting setting as E_ALL & ~E_NOTICE
public
mixed
ERROR_REPORTING_DEFAULT
= 'default'
ERROR_REPORTING_SYSTEM
PHP error reporting setting from php.ini
public
mixed
ERROR_REPORTING_SYSTEM
= 'system'
LICENSE_WARNING_ALL
send license warnings via email + display on screen
public
mixed
LICENSE_WARNING_ALL
= 'all'
LICENSE_WARNING_EMAIL
send license warnings via email
public
mixed
LICENSE_WARNING_EMAIL
= 'email'
LICENSE_WARNING_NONE
no license warning
public
mixed
LICENSE_WARNING_NONE
= 'none'
LICENSE_WARNING_SCREEN
display license warnings on screen
public
mixed
LICENSE_WARNING_SCREEN
= 'screen'
MAIL_ATTRIBUTE_DEFAULT
public
mixed
MAIL_ATTRIBUTE_DEFAULT
= 'mail'
MAIL_BACKUP_ATTRIBUTE_DEFAULT
public
mixed
MAIL_BACKUP_ATTRIBUTE_DEFAULT
= 'passwordselfresetbackupmail'
SMTP_NONE
No encryption for mail sending
public
mixed
SMTP_NONE
= 'NONE'
SMTP_SSL
SSL encryption for mail sending
public
mixed
SMTP_SSL
= 'SSL'
SMTP_TLS
TLS encryption for mail sending
public
mixed
SMTP_TLS
= 'TLS'
Properties
$allowedHosts
list of hosts which may access LAM
public
mixed
$allowedHosts
$allowedHostsSelfService
list of hosts which may access LAM Pro self service
public
mixed
$allowedHostsSelfService
$checkedRulesCount
number of password rules that must match (-1 = all)
public
mixed
$checkedRulesCount
= -1
$configDatabaseName
database name
public
mixed
$configDatabaseName
= ''
$configDatabasePassword
database password
public
mixed
$configDatabasePassword
= ''
$configDatabasePort
database port
public
mixed
$configDatabasePort
= ''
$configDatabaseServer
database server name
public
mixed
$configDatabaseServer
= ''
$configDatabaseType
database type
public
mixed
$configDatabaseType
= self::DATABASE_FILE_SYSTEM
$configDatabaseUser
database user
public
mixed
$configDatabaseUser
= ''
$default
Default profile
public
mixed
$default
$errorReporting
error reporting
public
mixed
$errorReporting
= self::ERROR_REPORTING_DEFAULT
$externalPwdCheckUrl
external URL for password checking (e.g. https://domain.com/url/{SHA1})
public
mixed
$externalPwdCheckUrl
$hideLoginErrorDetails
public
string
$hideLoginErrorDetails
= 'false'
hides detail messages for login errors
$licenseEmailDateSent
license warning email was last sent for this expiration date
public
mixed
$licenseEmailDateSent
= ''
$licenseEmailFrom
license warning email from address
public
mixed
$licenseEmailFrom
= ''
$licenseEmailTo
license warning email TO address(es) separated by ";"
public
mixed
$licenseEmailTo
= ''
$licenseWarningType
type of license warning (email/screen/both/none)
public
mixed
$licenseWarningType
= ''
$logDestination
log destination ("SYSLOG":syslog, "/...":file, "NONE":none, "REMOTE":server:port)
public
mixed
$logDestination
$logLevel
log level
public
mixed
$logLevel
$mailAttribute
public
string
$mailAttribute
= self::MAIL_ATTRIBUTE_DEFAULT
attribute to use for user mail address
$mailBackupAttribute
public
string
$mailBackupAttribute
= self::MAIL_BACKUP_ATTRIBUTE_DEFAULT
attribute to use for user backup mail address
$mailEncryption
public
string
$mailEncryption
= ''
encryption type for SMTP connection
$mailPassword
mail server password
public
mixed
$mailPassword
= ''
$mailServer
mail server (server:port)
public
mixed
$mailServer
= ''
$mailUser
mail server user
public
mixed
$mailUser
= ''
$passwordMinClasses
minimum character classes (upper, lower, numeric, symbols)
public
mixed
$passwordMinClasses
= 0
$passwordMinLength
minimum length for passwords
public
mixed
$passwordMinLength
= 0
$passwordMinLower
minimum lowercase characters
public
mixed
$passwordMinLower
= 0
$passwordMinNumeric
minimum numeric characters
public
mixed
$passwordMinNumeric
= 0
$passwordMinSymbol
minimum symbol characters
public
mixed
$passwordMinSymbol
= 0
$passwordMinUpper
minimum uppercase characters
public
mixed
$passwordMinUpper
= 0
$passwordMustNotContain3Chars
password may contain more than 2 characters of user/first/last name
public
mixed
$passwordMustNotContain3Chars
= 'false'
$passwordMustNotContainUser
password may contain the user name
public
mixed
$passwordMustNotContainUser
= 'false'
$sessionTimeout
Time of inactivity before session times out (minutes)
public
mixed
$sessionTimeout
$conffile
path to config file
private
mixed
$conffile
$delSSLCaCert
SSL certificate should be deleted on save()
private
mixed
$delSSLCaCert
= \false
$license
license data
private
mixed
$license
= ''
$moduleSettings
database password
private
mixed
$moduleSettings
= ''
$password
Password to change config.cfg
private
mixed
$password
$persistenceSettings
persistence settings are always stored on local file system
private
mixed
$persistenceSettings
= ['configDatabaseType', 'configDatabaseServer', 'configDatabasePort', 'configDatabaseName', 'configDatabaseUser', 'configDatabasePassword', 'license']
$settings
list of data fields to save in config file
private
mixed
$settings
= ["password", "default", "sessionTimeout", "hideLoginErrorDetails", "logLevel", "logDestination", "allowedHosts", "passwordMinLength", "passwordMinUpper", "passwordMinLower", "passwordMinNumeric", "passwordMinClasses", "passwordMinSymbol", 'checkedRulesCount', 'passwordMustNotContainUser', 'passwordMustNotContain3Chars', 'externalPwdCheckUrl', 'errorReporting', 'allowedHostsSelfService', 'license', 'licenseEmailFrom', 'licenseEmailTo', 'licenseWarningType', 'licenseEmailDateSent', 'mailServer', 'mailUser', 'mailPassword', 'mailEncryption', 'mailAttribute', 'mailBackupAttribute', 'configDatabaseType', 'configDatabaseServer', 'configDatabasePort', 'configDatabaseName', 'configDatabaseUser', 'configDatabasePassword', 'moduleSettings']
$uploadedSSLCaCert
uploaded SSL certificate that is stored to disk on save()
private
mixed
$uploadedSSLCaCert
Methods
__construct()
Loads preferences from config file
public
__construct([string $fileName = null ]) : mixed
Parameters
- $fileName : string = null
-
file path for config file
Return values
mixed —checkPassword()
Checks if the given password matches.
public
checkPassword(string $password) : bool
Parameters
- $password : string
-
password
Return values
bool —true, if password matches
deleteSSLCaCert()
Marks a single or all SSL CA certificate files for deletion.
public
deleteSSLCaCert([int $index = null ]) : mixed
The changes take effect on save().
Parameters
- $index : int = null
-
certificate index, null deletes all certificates (default: null)
Return values
mixed —exportCertificates()
Returns the content of the server certificates file
public
exportCertificates() : null|string
Return values
null|string —certificates
exportData()
Exports the configuration data.
public
exportData([mixed $skipPersistenceSettings = false ]) : array<string|int, mixed>
Parameters
- $skipPersistenceSettings : mixed = false
Return values
array<string|int, mixed> —config data
getLicenseLines()
Returns the license key as multiple lines.
public
getLicenseLines() : string
Return values
string —license
getLicenseWarningType()
Returns the license warning type (screen/email/both/none).
public
getLicenseWarningType() : string
Return values
string —warning type
getMailAttribute()
Returns the mail attribute.
public
getMailAttribute() : string
Return values
string —attribute name
getMailBackupAttribute()
Returns the mail backup attribute.
public
getMailBackupAttribute() : string
Return values
string —attribute name
getModuleSettings()
Returns a list of module settings.
public
getModuleSettings() : array<string|int, mixed>
Return values
array<string|int, mixed> —module settings
getSSLCaCertificates()
Returns a list of all CA certificates.
public
getSSLCaCertificates() : array<string|int, mixed>
Return values
array<string|int, mixed> —list of certificates as output of openssl_x509_parse()
getSSLCaCertPath()
Returns the path to the SSL CA certificate file that overrides the system certificates.
public
getSSLCaCertPath() : string
Return values
string —path to certificate file or null if certificate is not overridden
getSSLCaCertTempFileName()
Returns the name of a temporary file in tmp that contains the SSL certificate.
public
getSSLCaCertTempFileName() : string|null
The file contains either the stored data in serverCerts or the uploaded data.
Return values
string|null —file name or null if no certificate was set
importCertificates()
Imports the server certificates.
public
importCertificates(null|string $certsContent) : mixed
Parameters
- $certsContent : null|string
-
certificates
Tags
Return values
mixed —importData()
Imports configuration data.
public
importData(array<string|int, mixed> $data) : mixed
Parameters
- $data : array<string|int, mixed>
-
config data
Tags
Return values
mixed —installSampleConfig()
Tries to copy the config file from sample config.
public
installSampleConfig() : bool
Return values
bool —copied
isConfigFileExisting()
Returns if the configuration file is existing.
public
isConfigFileExisting() : bool
Return values
bool —exists
isHideLoginErrorDetails()
Hide error details for failed logins.
public
isHideLoginErrorDetails() : bool
Return values
bool —hide details
isWritable()
Returns if the configuration file is writable.
public
isWritable() : bool
Return values
bool —writable
save()
Saves the configuration to the persistence layer.
public
save() : mixed
Return values
mixed —saveLocal()
Saves preferences to config file config.cfg
public
saveLocal(bool $persistenceOnly) : void
Parameters
- $persistenceOnly : bool
-
store only persistence related data
Return values
void —sendLicenseWarningByEmail()
Returns if the license warning should be sent via email.
public
sendLicenseWarningByEmail() : bool
Return values
bool —send via email
setLicenseLines()
Sets the license key as multiple lines.
public
setLicenseLines(array<string|int, string> $licenseLines) : mixed
Parameters
- $licenseLines : array<string|int, string>
-
license lines
Return values
mixed —setModuleSettings()
Sets the module settings.
public
setModuleSettings(array<string|int, mixed> $settings) : void
Parameters
- $settings : array<string|int, mixed>
-
module settings
Return values
void —setPassword()
Sets a new config password.
public
setPassword(string $password) : mixed
Parameters
- $password : string
-
new password
Return values
mixed —showLicenseWarningOnScreen()
Returns if the license warning should be shown on screen.
public
showLicenseWarningOnScreen() : bool
Return values
bool —show on screen
uploadSSLCaCert()
Uploads a new SSL CA cert.
public
uploadSSLCaCert(string $cert) : mixed
Parameters
- $cert : string
-
file content in DER/PEM format
Return values
mixed —TRUE if format is correct, error message if file is not accepted
wasLicenseWarningSent()
Returns if the license warning was already sent.
public
wasLicenseWarningSent(int $timeStamp) : mixed
Parameters
- $timeStamp : int
-
time stamp
Return values
mixed —getInternalSSLCaCertFileName()
Returns the file name that will be used internally to store the CA file.
private
getInternalSSLCaCertFileName() : string
Return values
string —file name
getSSLCaCertificateContent()
Returns the content of the certificate file or uploaded data.
private
getSSLCaCertificateContent() : string
Return values
string —null or certificate content
hashPassword()
Returns the hashed password.
private
hashPassword(string $password, string $salt) : string
Parameters
- $password : string
-
password
- $salt : string
-
salt
Return values
string —hash value
loadFromDb()
Loads the settings from the database.
private
loadFromDb() : bool
Persistence settings are ignored as they must be on local file system.
Tags
Return values
bool —true when ok
reload()
Reloads preferences from config file config.cfg
private
reload() : void
Tags
Return values
void —saveDb()
Saves the config data to the database.
private
saveDb() : void
Return values
void —splitSSLCaCertificateContent()
Splits the certificate content into single PEM data chunks.
private
splitSSLCaCertificateContent(string $content) : array<string|int, mixed>
Parameters
- $content : string
-
PEM file content
Return values
array<string|int, mixed> —one element for each certificate chunk