update config
This commit is contained in:
parent
0962c2cc1f
commit
9758fe75f9
3 changed files with 17 additions and 4 deletions
|
|
@ -15,7 +15,8 @@
|
||||||
"label": "Vidéos",
|
"label": "Vidéos",
|
||||||
"dir": "./uploads/videos",
|
"dir": "./uploads/videos",
|
||||||
"allowDirectories": true,
|
"allowDirectories": true,
|
||||||
"allowedMimeTypes": ["video/*"]
|
"allowedMimeTypes": ["video/*"],
|
||||||
|
"permissions": "0o666"
|
||||||
},
|
},
|
||||||
{ "name": "divers", "label": "Divers", "dir": "./uploads/divers" }
|
{ "name": "divers", "label": "Divers", "dir": "./uploads/divers" }
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"permissions":{
|
||||||
|
"type":"string",
|
||||||
|
"default":"0o666",
|
||||||
|
"description": "Mode d'écriture sur le disque"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,12 @@ export interface DropTarget {
|
||||||
* valeur globale `allowedMimeTypes`. Toujours résolu après parsing.
|
* valeur globale `allowedMimeTypes`. Toujours résolu après parsing.
|
||||||
*/
|
*/
|
||||||
allowedMimeTypes: MimePolicy;
|
allowedMimeTypes: MimePolicy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mode de permission d'écriture
|
||||||
|
* Par défaut 0o666
|
||||||
|
*/
|
||||||
|
permission: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Liste non vide de cibles de dépôt ; la première est la cible par défaut. */
|
/** Liste non vide de cibles de dépôt ; la première est la cible par défaut. */
|
||||||
|
|
@ -204,7 +210,7 @@ function parseMimePolicy(value: unknown, label = 'allowedMimeTypes'): MimePolicy
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
throw new ConfigError(
|
throw new ConfigError(
|
||||||
`${label} : entrée invalide « ${entry} » ` +
|
`${label} : entrée invalide « ${entry} » ` +
|
||||||
'(formes acceptées : "type/sous-type", "type/*", "*/*", "*")',
|
'(formes acceptées : "type/sous-type", "type/*", "*/*", "*")',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -231,7 +237,7 @@ function parseSessionKey(value: unknown): Buffer {
|
||||||
if (key.length !== SESSION_KEY_BYTES) {
|
if (key.length !== SESSION_KEY_BYTES) {
|
||||||
throw new ConfigError(
|
throw new ConfigError(
|
||||||
`session.key doit être ${String(SESSION_KEY_BYTES)} octets encodés en base64 ` +
|
`session.key doit être ${String(SESSION_KEY_BYTES)} octets encodés en base64 ` +
|
||||||
`(décodé : ${String(key.length)} octets). Générer avec : openssl rand -base64 32`,
|
`(décodé : ${String(key.length)} octets). Générer avec : openssl rand -base64 32`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return key;
|
return key;
|
||||||
|
|
@ -257,7 +263,7 @@ function parseSession(value: unknown): SessionConfig {
|
||||||
key: parseSessionKey(raw.key),
|
key: parseSessionKey(raw.key),
|
||||||
maxAgeSeconds: Math.round(
|
maxAgeSeconds: Math.round(
|
||||||
optionalPositiveNumber(raw.maxAgeHours, DEFAULTS.sessionMaxAgeHours, 'session.maxAgeHours') *
|
optionalPositiveNumber(raw.maxAgeHours, DEFAULTS.sessionMaxAgeHours, 'session.maxAgeHours') *
|
||||||
3600,
|
3600,
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -386,6 +392,7 @@ function parseTargets(value: unknown, defaultMimePolicy: MimePolicy): DropTarget
|
||||||
raw.allowedMimeTypes === undefined || raw.allowedMimeTypes === null
|
raw.allowedMimeTypes === undefined || raw.allowedMimeTypes === null
|
||||||
? defaultMimePolicy
|
? defaultMimePolicy
|
||||||
: parseMimePolicy(raw.allowedMimeTypes, `targets[${String(index)}].allowedMimeTypes`),
|
: parseMimePolicy(raw.allowedMimeTypes, `targets[${String(index)}].allowedMimeTypes`),
|
||||||
|
permission: optionalString(raw.label, `targets[${String(index)}].permission`) ?? "0o666"
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue