* @author Ralf Becker * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @version $Id$ */ /** * Get the options for vfs_storage_mode, select the right one depending on vfs_fstab * * @param array $config * @return string */ function vfs_storage_mode_options($config) { if (!isset($config['vfs_fstab']) || $config['vfs_fstab'] == json_encode($default=array( '/' => 'sqlfs://$host/', '/apps' => 'links://$host/apps', )) || $config['vfs_fstab'] == serialize($default)) // detect old serialized value too { $config['vfs_storage_mode'] = 'fs'; } elseif($config['vfs_fstab'] == json_encode($default_db=array( '/' => 'sqlfs://$host/?storage=db', '/apps' => 'links://$host/apps?storage=db', )) || $config['vfs_fstab'] == serialize($default_db)) // detect old serialized value too { $config['vfs_storage_mode'] = 'db'; } else { $config['vfs_storage_mode'] = 'custom'; } //_debug_array(array_intersect_key($config,array('vfs_fstab'=>1,'vfs_storage_mode'=>1))); foreach(array( 'fs' => lang('Filesystem (default)'), 'db' => lang('Database').' (problems with files > 1MB)', 'custom' => lang('Custom set via %1','filemanager/cli.php mount'), ) as $name => $label) { if ($name != 'custom' || $name === $config['vfs_storage_mode']) // dont show custom, if not custom { $options .= '' . "\n"; $listed[] = $value; } } if(!$found) { /* Something is wrong with their mcrypt install or php.ini */ $out = '' . "\n"; } } else { $out = '' . "\n"; } return $out; } function encryptmode($config) { if(@function_exists('mcrypt_list_modes')) { $listed = array(); if(!isset($config['mcrypt_mode'])) { $config['mcrypt_mode'] = 'cbc'; /* MCRYPT_MODE_CBC */ } $modes = @mcrypt_list_modes(); $found = False; $out = ''; while(list($key,$value) = each($modes)) { $found = True; /* Only show each once - seems this is a problem in some installs */ if(!in_array($value,$listed)) { if($config['mcrypt_mode'] == $value) { $selected = ' selected="selected"'; } else { $selected = ''; } $descr = strtoupper($value); $out .= '' . "\n"; $listed[] = $value; } } if(!$found) { /* Something is wrong with their mcrypt install or php.ini */ $out = '' . "\n"; } } else { $out = '' . "\n"; } return $out; } function passwdhashes($config,$return_hashes=false) { $hashes = sql_passwdhashes($config,true); if (isset($hashes['crypt'])) { $hashes['des'] = 'des (=crypt)'; // old LDAP name for crypt } return $return_hashes ? $hashes : _options_from($hashes, $config['ldap_encryption_type'] ? $config['ldap_encryption_type'] : 'des'); } function sql_passwdhashes($config, $return_hashes=false, &$securest=null) { $hashes = auth::passwdhashes($securest); return $return_hashes ? $hashes : _options_from($hashes, $config['sql_encryption_type'] ? $config['sql_encryption_type'] : 'md5'); } /** * Make auth-types from setup_cmd_config available * * @param array $config * @return string */ function auth_types($config) { return _options_from(setup_cmd_config::auth_types(),$config['auth_type']); } function auth_type_syncml($config) { return _options_from(setup_cmd_config::auth_types(),$config['auth_type_syncml']); } function auth_type_groupdav($config) { return _options_from(setup_cmd_config::auth_types(),$config['auth_type_groupdav']); } function auth_type_activesync($config) { return _options_from(setup_cmd_config::auth_types(),$config['auth_type_activesync']); } /** * Returns options string * * @param array $options value => label pairs * @param string $selected value of selected optino * @return string */ function _options_from(array $options,$selected) { foreach($options as $value => $label) { $out .= '' . "\n"; } return $out; }