blob: 17aaa3fbbeb3e6ef6360c83ca349175278370f2b [file] [log] [blame]
Matthias Andreas Benkardb382b102021-01-02 15:32:21 +01001<?php
2function presets($_action, $_kind) {
3 switch ($_action) {
4 case 'get':
5 if ($_SESSION['mailcow_cc_role'] != "admin" && $_SESSION['mailcow_cc_role'] != "domainadmin") {
6 return false;
7 }
8 $presets = array();
9 $kind = strtolower(trim($_kind));
10 $lang_base = 'admin';
11 $presets_path = __DIR__ . '/presets/' . $kind;
12 if (!in_array($kind, ['rspamd', 'sieve'], true)) {
13 return array();
14 }
15 if ($kind === 'sieve') {
16 $lang_base = 'mailbox';
17 }
18 foreach (glob($presets_path . '/*.yml') as $filename) {
19 $presets[] = getPresetFromFilePath($filename, $lang_base);
20 }
21 return $presets;
22 break;
23 }
24 return array();
25}
26function getPresetFromFilePath($filePath, $lang_base) {
27 global $lang;
28 $preset = Spyc::YAMLLoad($filePath);
29 $preset = ['name' => basename($filePath, '.yml')] + $preset;
30 /* get translated headlines */
31 if (isset($preset['headline']) && strpos($preset['headline'], 'lang.') === 0) {
32 $langTextName = trim(substr($preset['headline'], 5));
33 if (isset($lang[$lang_base][$langTextName])) {
34 $preset['headline'] = $lang[$lang_base][$langTextName];
35 }
36 }
37 return $preset;
38}