|  | <?php | 
|  | function presets($_action, $_kind) { | 
|  | switch ($_action) { | 
|  | case 'get': | 
|  | if ($_SESSION['mailcow_cc_role'] != "admin" && $_SESSION['mailcow_cc_role'] != "domainadmin") { | 
|  | return false; | 
|  | } | 
|  | $presets = array(); | 
|  | $kind = strtolower(trim($_kind)); | 
|  | $lang_base = 'admin'; | 
|  | $presets_path = __DIR__ . '/presets/' . $kind; | 
|  | if (!in_array($kind, ['rspamd', 'sieve'], true)) { | 
|  | return array(); | 
|  | } | 
|  | if ($kind === 'sieve') { | 
|  | $lang_base = 'mailbox'; | 
|  | } | 
|  | foreach (glob($presets_path . '/*.yml') as $filename) { | 
|  | $presets[] = getPresetFromFilePath($filename, $lang_base); | 
|  | } | 
|  | return $presets; | 
|  | break; | 
|  | } | 
|  | return array(); | 
|  | } | 
|  | function getPresetFromFilePath($filePath, $lang_base) { | 
|  | global $lang; | 
|  | $preset = Spyc::YAMLLoad($filePath); | 
|  | $preset = ['name' => basename($filePath, '.yml')] + $preset; | 
|  | /* get translated headlines */ | 
|  | if (isset($preset['headline']) && strpos($preset['headline'], 'lang.') === 0) { | 
|  | $langTextName = trim(substr($preset['headline'], 5)); | 
|  | if (isset($lang[$lang_base][$langTextName])) { | 
|  | $preset['headline'] = $lang[$lang_base][$langTextName]; | 
|  | } | 
|  | } | 
|  | return $preset; | 
|  | } |