_('Language'),_('Language of the application. If \'automatic\' or not available, the one asked by the browser will be used. This setting can be overriden per user.'),
_('LDAP size limit'),_('Defines the number of entries to get from LDAP by default.'),
'fdLdapSizeLimit',FALSE,
0/*min*/,FALSE/*no max*/,200
),
newSelectAttribute(
_('Edit locking'),
_('Check if a entry currently being edited has been modified outside of FusionDirectory in the meantime.'),
'fdModificationDetectionAttribute',FALSE,
['','entryCSN','contextCSN'],'entryCSN'
),
newBooleanAttribute(
_('Enable logging'),
_('Event logging on FusionDirectory side.'),
'fdLogging',FALSE,
TRUE
),
newBooleanAttribute(
_('Schema validation'),
_('Enables schema checking during login.'),
'fdSchemaCheck',FALSE,
TRUE
),
newBooleanAttribute(
_('Wildcard foreign keys'),_('Enables wildcard searches like member=* when moving a whole department. This will open all existing groups and roles to make sure foreign keys are respected. Slow on big trees.'),
'fdWildcardForeignKeys',FALSE,
TRUE
),
]
],
'password'=>[
'name'=>_('Password settings'),
'attrs'=>[
newSetAttribute(
newSelectAttribute(
_('Allowed password hashes'),_('Password hashes which may be used for user passwords'),
'fdPasswordAllowedHashes',TRUE,
['ssha']
)
),
newSelectAttribute(
_('Password default hash'),_('Default hash to be used'),
'fdPasswordDefaultHash',TRUE,
['ssha']
),
newBooleanAttribute(
_('Force default hash'),_('Force the use of the default password hash'),
'fdForcePasswordDefaultHash'
),
newIntAttribute(
_('Password minimum length'),_('Minimum length of user passwords'),
'fdPasswordMinLength',FALSE,
0/*min*/,FALSE/*no max*/
),
newIntAttribute(
_('Password minimum differs'),_('Minimum number of different characters from last password'),
'fdPasswordMinDiffer',FALSE,
0/*min*/,FALSE/*no max*/
),
newBooleanAttribute(
_('Use account expiration'),
_('Enables shadow attribute tests during the login to FusionDirectory and forces password renewal or account locking'),
'fdHandleExpiredAccounts'
),
newStringAttribute(
_('SASL Realm'),_('SASL Realm'),
'fdSaslRealm'
),
newStringAttribute(
_('SASL Exop'),_('Attribute to be stored in the userPassword attribute'),
'fdSaslExop'
),
]
],
'login'=>[
'name'=>_('Login and session'),
'attrs'=>[
newSelectAttribute(
_('Login attribute'),
_('Which LDAP attribute should be used as the login name during login.'),
'fdLoginAttribute',TRUE,
['uid','mail','uid,mail'],'uid',
['uid','mail','both']
),
newBooleanAttribute(
_('Enforce encrypted connections'),
_('Enables PHP security checks to force encrypted access (https) to the web interface.'),
'fdForceSSL'
),
newBooleanAttribute(
_('Warn if session is not encrypted'),
_('will display a warning to the user when http is used instead of https.'),
'fdWarnSSL',FALSE,
TRUE
),
newIntAttribute(
_('Session lifetime'),_('Defines when a session will expire in seconds (0 to disable).'),
'fdSessionLifeTime',TRUE,
0/*min*/,FALSE/*no max*/,1800
),
newSelectAttribute(
_('Login method'),
_('Which login method should be used for connecting to FusionDirectory'),
'fdLoginMethod',TRUE
),
newStringAttribute(
_('Header name'),_('Name of the header containing user identifier.'),
'fdHttpHeaderAuthHeaderName',FALSE,
'AUTH_USER'
),
]
],
'ssl'=>[
'name'=>_('SSL'),
'attrs'=>[
newTrimmedStringAttribute(
_('Key path'),_('Path to FusionDirectory private key. Unused for now.'),
'fdSslKeyPath',FALSE,
'/etc/ssl/private/fd.key'
),
newTrimmedStringAttribute(
_('Certificate path'),_('Path to FusionDirectory certificate. Unused for now.'),
'fdSslCertPath',FALSE,
'/etc/ssl/certs/fd.cert'
),
newTrimmedStringAttribute(
_('CA certificate path'),_('Path to the CA certificate. Used for validating Argonaut Server host.'),
'fdSslCaCertPath',FALSE,
'/etc/ssl/certs/ca.cert'
),
]
],
'cas'=>[
'name'=>_('CAS'),
'attrs'=>[
newTrimmedStringAttribute(
_('CA certificate path'),_('Path to the CA certificate of the CAS server'),
'fdCasServerCaCertPath',FALSE,
'/etc/ssl/certs/ca.cert'
),
newStringAttribute(
_('Host'),_('Host of the CAS server'),
'fdCasHost',FALSE,
'localhost'
),
newIntAttribute(
_('Port'),_('Port the CAS server is listening on'),
'fdCasPort',FALSE,
0/*min*/,FALSE/*no max*/,443
),
newStringAttribute(
_('CAS context'),_('CAS context to be used'),
'fdCasContext',FALSE,
'/cas'
),
newBooleanAttribute(
_('Verbose error'),_('Activate verbose errors in phpCAS. Avoid in production.'),
'fdCasVerbose',FALSE
),
newBooleanAttribute(
_('Library CAS 1.6'),_('Activate if library CAS >= 1.6 is being used.'),
'fdCasLibraryBool',FALSE
),
newStringAttribute(
_('Client service'),_('The client service name'),
'fdCasClientServiceName',FALSE
),
]
],
'people_and_group'=>[
'name'=>_('People and group storage'),
'class'=>['critical'],
'attrs'=>[
newSelectAttribute(
_('People DN attribute'),_('Attribute to use at the beginning of the user dn'),
'fdAccountPrimaryAttribute',TRUE,
['uid','cn']
),
newStringAttribute(
_('CN pattern'),_('The pattern to use to build the common name field'),
'fdCnPattern',TRUE,
'%givenName% %sn%'
),
newBooleanAttribute(
_('Mandatory first name'),
_('Whether first name (givenName) should be a mandatory field on users'),
'fdGivenNameRequired',FALSE,
TRUE
),
newBooleanAttribute(
_('Strict naming policy'),
_('Enables strict checking of user and group names'),
'fdStrictNamingRules',FALSE,
TRUE
),
newStringAttribute(
_('Users RDN'),_('The branch where users are stored.'),
'fdUserRDN',TRUE,
'ou=people'
),
newStringAttribute(
_('ACL role RDN'),_('The branch where ACL roles are stored.'),
'fdAclRoleRDN',TRUE,
'ou=aclroles'
),
newBooleanAttribute(
_('Restrict role members'),_('When enabled only users from the same branch or members of groups from the same branch can be added to a role.'),
'fdRestrictRoleMembers'
),
newBooleanAttribute(
_('Separate address fields'),_('Expose street, postOfficeBox and postalCode fields instead of postalAddress.'),
'fdSplitPostalAddress'
),
newPostalAddressAttribute(
_('Postal address pattern'),_('When using separate address fields, you can use a pattern to fill postalAddress field.'),
'fdPostalAddressPattern'
),
newIntAttribute(
_('Avatar max size'),_('Maximum user picture width and height in pixels. Bigger uploaded pictures will be resized.'),
'fdMaxAvatarSize',FALSE,
1,FALSE,200
),
]
],
'debug'=>[
'name'=>_('Debugging'),
'attrs'=>[
newBooleanAttribute(
_('Display PHP errors'),
_('Shows PHP errors in the upper part of the screen. This should be disabled in production deployments, because it may contain passwords.'),
'fdDisplayErrors'
),
newIntAttribute(
_('Maximum LDAP query time'),_('Stop LDAP actions if there is no answer within the specified number of seconds.'),
'fdLdapMaxQueryTime',FALSE,
0/*min*/,FALSE/*no max*/
),
newBooleanAttribute(
_('Log LDAP statistics'),
_('Track LDAP timing statistics to the syslog. This may help to find indexing problems or bad search filters.'),
'fdLdapStats'
),
newDebugLevelAttribute(
newSelectAttribute(
_('Debug level'),
_('Display certain information on each page load.'),
htmlescape(sprintf(_('It seems the selected language "%s" is not installed on the system. Please install it or select an other one.'),$this->fdLanguage))