diff --git a/contrib/openldap/core-fd-conf.schema b/contrib/openldap/core-fd-conf.schema index dff0cbff28285a189d78d30efd98f092e7cfde3b..b3e113fb5c45769185604bee42f5349e78f600ce 100644 --- a/contrib/openldap/core-fd-conf.schema +++ b/contrib/openldap/core-fd-conf.schema @@ -394,7 +394,7 @@ attributetype ( 1.3.6.1.4.1.38414.8.18.2 NAME 'fdTabHook' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 1.3.6.1.4.1.38414.8.18.3 NAME 'fdShells' - DESC 'FusionDirectory - available shell' + DESC 'FusionDirectory - available shells' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) @@ -423,6 +423,13 @@ attributetype ( 1.3.6.1.4.1.38414.8.18.7 NAME 'fdDepartmentCategories' SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +attributetype ( 1.3.6.1.4.1.38414.8.18.8 NAME 'fdDefaultShell' + DESC 'FusionDirectory - default shell' + EQUALITY caseExactIA5Match + SUBSTR caseExactIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 + SINGLE-VALUE) + # Plugins attributetype ( 1.3.6.1.4.1.38414.8.19.1 NAME 'fdOGroupRDN' @@ -597,7 +604,7 @@ objectclass ( 1.3.6.1.4.1.38414.8.2.1 NAME 'fusionDirectoryConf' fdHttpAuthActivated $ fdHttpHeaderAuthActivated $ fdHttpHeaderAuthHeaderName $ fdDisplayErrors $ fdLdapMaxQueryTime $ fdLdapStats $ fdDebugLevel $ fdEnableSnapshots $ fdSnapshotBase $ - fdTabHook $ fdShells $ fdDisplayHookOutput $ + fdTabHook $ fdShells $ fdDefaultShell $ fdDisplayHookOutput $ fdAclTabOnObjects $ fdDepartmentCategories $ fdRfc2307bis $ fdCopyPaste $ fdSnapshotURI $ fdSnapshotAdminDn $ fdSnapshotAdminPassword $ fdPersonalTitleInDN $ fdAccountRDN $ diff --git a/plugins/admin/departments/class_departmentManagement.inc b/plugins/admin/departments/class_departmentManagement.inc index b57f6f5035531b22da9a71e09938f1b3c9878b3f..eccb920cb5fb76527fd1afc2b3594b205638056e 100644 --- a/plugins/admin/departments/class_departmentManagement.inc +++ b/plugins/admin/departments/class_departmentManagement.inc @@ -27,7 +27,7 @@ class departmentManagement extends simpleManagement protected $departmentRootVisible = FALSE; protected $baseMode = TRUE; - /* Return plugin informations for acl handling */ + /* Return plugin information for acl handling */ static function plInfo() { return array( diff --git a/plugins/config/class_configInLdap.inc b/plugins/config/class_configInLdap.inc index 2a44f5647030b9d7a0e1975d6351e9ad80f4dd84..8b29b79fd6669cd1b297a2becd3f7ed74609d864 100644 --- a/plugins/config/class_configInLdap.inc +++ b/plugins/config/class_configInLdap.inc @@ -458,6 +458,10 @@ class configInLdap extends simplePlugin array('/bin/ash','/bin/bash','/bin/csh','/bin/sh','/bin/ksh', '/bin/tcsh','/bin/dash','/bin/zsh','/sbin/nologin', '/bin/false', '/usr/bin/git-shell') ), + new SelectAttribute ( + _('Default shell'), _('Shell used by default when activating Unix tab.'), + 'fdDefaultShell', TRUE + ), new BooleanAttribute ( _('Show ACL tab on all objects'), _('For very specific ACL rights setting where you might need to give right on a single object.'), @@ -499,6 +503,8 @@ class configInLdap extends simplePlugin $this->fusionConfigMd5 = md5_file(CACHE_DIR."/".CLASS_CACHE); + $this->attributesAccess['fdDefaultShell']->setChoices($this->fdShells); + $this->attributesAccess['fdHttpAuthActivated']->setManagedAttributes( array( 'erase' => array ( @@ -564,6 +570,12 @@ class configInLdap extends simplePlugin return $this->dn; } + function save_object() + { + parent::save_object(); + $this->attributesAccess['fdDefaultShell']->setChoices($this->fdShells); + } + static function get_themes() { $themesdir = '../ihtml/themes/'; diff --git a/plugins/personal/posix/class_posixAccount.inc b/plugins/personal/posix/class_posixAccount.inc index fa6282f6d327756308df94e70131926e2eec8b45..079fd325a0f7115a2eadf11fc5ad195ec8805774 100644 --- a/plugins/personal/posix/class_posixAccount.inc +++ b/plugins/personal/posix/class_posixAccount.inc @@ -107,6 +107,7 @@ class posixAccount extends simplePlugin // The main function : information about attributes static function getAttributesInfo () { + global $config; return array( 'main' => array( 'name' => _('Unix'), @@ -119,7 +120,9 @@ class posixAccount extends simplePlugin new StringAttribute('gecos', 'gecos', 'gecos'), new SelectAttribute( _('Shell'), _('Which shell should be used when this user log in'), - 'loginShell', TRUE + 'loginShell', TRUE, + $config->get_cfg_value('Shells', array(_('unconfigured'))), + $config->get_cfg_value('DefaultShell', '') ), new SelectAttribute( _('Primary group'), _('Primary group for this user'), @@ -285,11 +288,11 @@ class posixAccount extends simplePlugin } /* Generate shell list from config */ - $loginShellList = $config->get_cfg_value('Shells', array(_('unconfigured'))); + $loginShellList = $this->attributesAccess['loginShell']->getChoices(); /* Insert possibly missing loginShell */ $loginShell = $this->attributesAccess['loginShell']->getValue(); - if ($loginShell != "" && !in_array($loginShell, $loginShellList)) { + if (($loginShell != '') && !in_array($loginShell, $loginShellList)) { $loginShellList[] = $loginShell; } $this->attributesAccess['loginShell']->setChoices($loginShellList);